├── .gitmodules ├── LICENSE ├── README.md └── context.app └── Contents ├── Info.plist ├── MacOS └── applet ├── PkgInfo ├── RUNME ├── FEATURES.html ├── README.md ├── linux │ ├── context.sh │ └── memories ├── mac │ ├── context.app │ └── memories └── windows │ └── context.vbs ├── Resources ├── Scripts │ └── main.scpt ├── applet.icns ├── applet.rsrc ├── context processor.app │ └── Contents │ │ ├── Info.plist │ │ ├── JavaScript │ │ └── Flow.js │ │ ├── Library │ │ └── QuickLook │ │ │ └── SqueakQL.qlgenerator │ │ │ └── Contents │ │ │ ├── Info.plist │ │ │ ├── MacOS │ │ │ ├── SqueakQL │ │ │ └── SqueakQL.sig │ │ │ └── Resources │ │ │ └── English.lproj │ │ │ └── InfoPlist.strings │ │ ├── Linux │ │ ├── bin │ │ │ ├── spoon │ │ │ └── spoon.sh │ │ ├── lib │ │ │ └── spoon │ │ │ │ └── 4.4.7-2357 │ │ │ │ ├── activeFilesystem.changes │ │ │ │ ├── activeFilesystem.image │ │ │ │ ├── so.AioPlugin │ │ │ │ ├── so.ClipboardExtendedPlugin │ │ │ │ ├── so.FileCopyPlugin │ │ │ │ ├── so.Flow │ │ │ │ ├── so.HostWindowPlugin │ │ │ │ ├── so.KedamaPlugin │ │ │ │ ├── so.KedamaPlugin2 │ │ │ │ ├── so.MIDIPlugin │ │ │ │ ├── so.Mpeg3Plugin │ │ │ │ ├── so.Squeak3D │ │ │ │ ├── so.SqueakFFIPrims │ │ │ │ ├── so.UnixOSProcessPlugin │ │ │ │ ├── so.XDisplayControlPlugin │ │ │ │ ├── so.vm-display-X11 │ │ │ │ ├── so.vm-display-custom │ │ │ │ ├── so.vm-display-fbdev │ │ │ │ ├── so.vm-display-null │ │ │ │ ├── so.vm-sound-ALSA │ │ │ │ ├── so.vm-sound-OSS │ │ │ │ ├── so.vm-sound-custom │ │ │ │ ├── so.vm-sound-null │ │ │ │ └── spoonvm │ │ └── share │ │ │ └── man │ │ │ └── man1 │ │ │ └── squeak.1 │ │ ├── MacOS │ │ ├── Pharo │ │ ├── Spoon VM Opt │ │ └── Squeak │ │ ├── PkgInfo │ │ ├── Resources │ │ ├── .lldbinit │ │ ├── Flow.bundle │ │ │ └── Contents │ │ │ │ ├── Info.plist │ │ │ │ ├── MacOS │ │ │ │ └── Flow │ │ │ │ └── Resources │ │ │ │ ├── English.lproj │ │ │ │ └── InfoPlist.strings │ │ │ │ └── libportmidi.dylib │ │ └── context │ │ │ ├── changes │ │ │ ├── memory │ │ │ │ ├── 1-ContextPrecursors-crl.1.mcz │ │ │ │ └── 2-Context-crl.2.mcz │ │ │ └── processor │ │ │ │ ├── 1 of 4 - remote messaging.cs │ │ │ │ ├── 2 of 4 - unused-method removal.cs │ │ │ │ ├── 3 of 4 - active imprinting.cs │ │ │ │ └── 4 of 4 - collateral improvements.cs │ │ │ ├── documentation │ │ │ └── book │ │ │ │ ├── pictures │ │ │ │ ├── welcome.png │ │ │ │ └── workspace.png │ │ │ │ ├── the Spoon book.pages │ │ │ │ └── the Spoon book.pdf │ │ │ ├── memories │ │ │ └── 946BE974-48B7-4D11-B209-6355B3E49722 │ │ │ │ └── 946BE974-48B7-4D11-B209-6355B3E49722 │ │ │ ├── processor │ │ │ ├── Pharo3.0.app │ │ │ │ └── Contents │ │ │ │ │ ├── Info.plist │ │ │ │ │ ├── MacOS │ │ │ │ │ ├── Pharo │ │ │ │ │ └── Plugins │ │ │ │ │ │ ├── libAsynchFilePlugin.dylib │ │ │ │ │ │ ├── libB3DAcceleratorPlugin.dylib │ │ │ │ │ │ ├── libCroquetPlugin.dylib │ │ │ │ │ │ ├── libFT2Plugin.dylib │ │ │ │ │ │ ├── libFloatMathPlugin.dylib │ │ │ │ │ │ ├── libIA32ABI.dylib │ │ │ │ │ │ ├── libJPEGReadWriter2Plugin.dylib │ │ │ │ │ │ ├── libJPEGReaderPlugin.dylib │ │ │ │ │ │ ├── libJoystickTabletPlugin.dylib │ │ │ │ │ │ ├── libLocalePlugin.dylib │ │ │ │ │ │ ├── libMIDIPlugin.dylib │ │ │ │ │ │ ├── libMpeg3Plugin.dylib │ │ │ │ │ │ ├── libObjectiveCPlugin.dylib │ │ │ │ │ │ ├── libQuicktimePlugin.dylib │ │ │ │ │ │ ├── libRePlugin.dylib │ │ │ │ │ │ ├── libSerialPlugin.dylib │ │ │ │ │ │ ├── libSqueakFFIPrims.dylib │ │ │ │ │ │ ├── libSqueakSSL.dylib │ │ │ │ │ │ ├── libTestOSAPlugin.dylib │ │ │ │ │ │ ├── libUUIDPlugin.dylib │ │ │ │ │ │ ├── libcairo.2.dylib │ │ │ │ │ │ ├── libfreetype.6.dylib │ │ │ │ │ │ ├── libgit2.0.20.0.dylib │ │ │ │ │ │ ├── libpixman-1.0.dylib │ │ │ │ │ │ ├── libpng12.0.dylib │ │ │ │ │ │ └── libssh2.dylib │ │ │ │ │ └── Resources │ │ │ │ │ ├── English.lproj │ │ │ │ │ ├── InfoPlist.strings │ │ │ │ │ └── MainMenu.nib │ │ │ │ │ ├── Pharo.icns │ │ │ │ │ ├── Pharo.ico │ │ │ │ │ ├── Pharo.png │ │ │ │ │ ├── Pharo3.0.changes │ │ │ │ │ ├── Pharo3.0.image │ │ │ │ │ ├── PharoChanges.icns │ │ │ │ │ ├── PharoImage.icns │ │ │ │ │ ├── PharoSources.icns │ │ │ │ │ ├── PharoV30.sources │ │ │ │ │ └── Squeak VM.r │ │ │ └── context.config │ │ │ └── workspaces │ │ │ └── remote messaging │ │ ├── _CodeSignature │ │ ├── CodeDirectory │ │ ├── CodeRequirements │ │ ├── CodeResources │ │ └── CodeSignature │ │ └── win32 │ │ ├── 5 │ │ ├── flow.dll │ │ ├── spoon.exe │ │ └── spoon.ini │ │ ├── 8 │ │ ├── flow.dll │ │ └── spoon.exe │ │ ├── FT2Plugin.dll │ │ ├── SqueakFFIPrims.dll │ │ ├── SqueakSSL.dll │ │ ├── SqueakV3.sources │ │ ├── flow.dll │ │ ├── msvcr100d.dll │ │ ├── msvcr120d.dll │ │ ├── portforward.exe │ │ ├── splash.bmp │ │ ├── spoon.exe │ │ └── spoon.ini ├── context.icns └── description.rtfd │ └── TXT.rtf └── _CodeSignature └── CodeResources /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "context.app/Contents/Resources/context processor.app/Contents/Resources/context/memories/CFE10A14-D883-4ACE-990A-0DDA86AA362B"] 2 | path = context.app/Contents/Resources/context processor.app/Contents/Resources/context/memories/CFE10A14-D883-4ACE-990A-0DDA86AA362B 3 | url = https://github.com/ccrraaiigg/CFE10A14-D883-4ACE-990A-0DDA86AA362B 4 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014 Craig Latta 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | 23 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | context.app/Contents/RUNME/README.md -------------------------------------------------------------------------------- /context.app/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleAllowMixedLocalizations 6 | 7 | CFBundleDevelopmentRegion 8 | English 9 | CFBundleExecutable 10 | applet 11 | CFBundleIconFile 12 | context.icns 13 | CFBundleIdentifier 14 | com.apple.ScriptEditor.id.context 15 | CFBundleInfoDictionaryVersion 16 | 6.0 17 | CFBundleName 18 | context 4 alpha 1 19 | CFBundlePackageType 20 | APPL 21 | CFBundleShortVersionString 22 | 4 alpha 1 23 | CFBundleSignature 24 | aplt 25 | LSBackgroundOnly 26 | 1 27 | LSMinimumSystemVersionByArchitecture 28 | 29 | x86_64 30 | 10.6 31 | 32 | LSRequiresCarbon 33 | 34 | WindowState 35 | 36 | bundleDividerCollapsed 37 | 38 | bundlePositionOfDivider 39 | 0.0 40 | dividerCollapsed 41 | 42 | eventLogLevel 43 | 2 44 | name 45 | ScriptWindowState 46 | positionOfDivider 47 | 477 48 | savedFrame 49 | 0 55 1436 822 0 0 1440 877 50 | selectedTab 51 | log 52 | 53 | 54 | 55 | -------------------------------------------------------------------------------- /context.app/Contents/MacOS/applet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/MacOS/applet -------------------------------------------------------------------------------- /context.app/Contents/PkgInfo: -------------------------------------------------------------------------------- 1 | APPLaplt -------------------------------------------------------------------------------- /context.app/Contents/RUNME/FEATURES.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Context features 6 | 7 | 8 | 9 | 10 |
11 |

12 |
13 | 14 | Context features 15 | 16 |
17 |

18 |
19 |

20 |       21 | 22 | Following are feature lists for various releases 23 | of Context. 24 | 25 |

26 |

27 |      28 | 29 | 4 alpha 1 30 | 31 |

32 | 52 |
53 | 54 | 55 | -------------------------------------------------------------------------------- /context.app/Contents/RUNME/README.md: -------------------------------------------------------------------------------- 1 | 2 | You're almost in **Context**. To get there, start the console: 3 | 4 | - On Mac OS, double-click the app containing this file. 5 | 6 | - On Windows, double-click **windows/context.vbs** 7 | 8 | - On Linux, run **linux/context.sh** 9 | 10 | Hm, you're still reading this. Too bad. Well, perhaps a few comments 11 | about the structure of this thing are in order. 12 | 13 | **Context** is a **programming language**, in the form of a **virtual 14 | operating system**. It runs on multiple **host platforms** (like 15 | Linux, Mac OS, and Windows), and looks like a normal **app** on each 16 | platform. However, it presents the programmer with a 17 | platform-independent model of system resources (like files, sockets, 18 | devices, and processes), through an **object-oriented programming** 19 | interface. A **virtual machine** supports the programming interface on 20 | each platform, using appropriate platform-specific system calls. 21 | 22 | A summary of features one may expect to work in each release is in 23 | FEATURES.html. 24 | 25 | This file is part of the **Context** app, which takes the form of an 26 | Apple app directory tree, augmented to be self-revealing on Linux and 27 | Windows as well. When you start the app, it opens a **console**, from 28 | which you may control a set 29 | of **Smalltalk** 30 | systems. The console presents a list of all installed systems, 31 | describing what each one does and its current state. You can use the 32 | console to resume and suspend each one. You can also use the console 33 | to find and install additional systems from the net, and publish them 34 | there. 35 | 36 | ***objects, messages, and virtual machines*** 37 | 38 | An **object** is a composition of **state** (a set of **references** 39 | to other objects) and **behavior** (sequences of **instructions** for 40 | manipulating those references). The instructions of an object's 41 | behavior are organized as **methods**, each of which corresponds to a 42 | **message** that the object 43 | understands. A **Smalltalk** 44 | system is a collection of objects sending messages to each other, thus 45 | invoking their behavior and changing their state. 46 | 47 | The behavior is performed by an instruction **processor**, also known 48 | as a **virtual machine**. Each time an object sends a message to 49 | another object, the processor performs the instructions in the method 50 | corresponding to that message. To keep track of the receiving object of 51 | the message, which instruction it is performing, and intermediate 52 | results, the processor creates a **context** object corresponding to 53 | that particular invocation of the message. 54 | 55 | In the course of performing a message, the processor will encounter 56 | instructions that describe sending another message. Each context keeps 57 | a reference to the context of the previous message the processor was 58 | performing. A chain of contexts is a **process**. 59 | 60 | Other instructions direct the processor to perform a built-in 61 | operation, rather than send a message. These operations are 62 | **primitives**. There are primitives for basic functions that can be 63 | handled by the physical processor, like addition, and those which can 64 | be handled by the host operating system, like creating a network 65 | socket. The processor implements a process scheduling model. Some 66 | primitives request that the processor suspend the current process and 67 | run a different one instead. The processor uses the scheduling model 68 | to decide which process should run next. 69 | 70 | Methods of instructions are generated by a **compiler**, from textual 71 | **source** written by humans or other objects. A compiler is an object 72 | like any other, part of the running system. In fact, source authors 73 | have an extensive set of tools (also known as an **interactive 74 | development environment**) for writing and compiling methods, all 75 | implemented as objects sending messages. 76 | 77 | The source level is where humans typically reason about messages. The 78 | source of a method consists of one or more **expressions**. Here's an 79 | example of an expression: 80 | 81 | 3 squared 82 | 83 | In that expression, the **receiver** object 3 is sent the message 84 | "squared". The **selector** of the message is the **symbol** 85 | "squared". This is an example of a **unary** message; there are no 86 | **parameters**. When there is at least one parameter, the selector may 87 | be a sequence of colon-terminated **keywords**. When there is only one 88 | paremeter, the selector may be a lone **operator** with no 89 | colon. Here's an expression with a message whose selector is a lone 90 | operator: 91 | 92 | 3 + 4 93 | 94 | This is called a **binary** message. Here's an expression with a 95 | message whose selector is a sequence of keywords: 96 | 97 | 3 to: 11 by: 4 98 | 99 | This is called a **keyword** message. The selector has two keywords, 100 | one for each parameter. 101 | 102 | Every object is an **instance** of a **class** object. The class keeps 103 | a set of methods corresponding to the messages that its instances 104 | understand. Classes are chained into a hierarchy; each class has a 105 | **superclass** and zero or more **subclasses**. When the processor 106 | performs the sending of a message, it looks for a method corresponding 107 | to that message in the methods of the receiving object's class. If it 108 | doesn't find one, it continues searching in the superclasses of that 109 | class. Because the processor searches for appropriate methods in this 110 | way, we say that an instance of a class **inherits** behavior from the 111 | superclasses. 112 | 113 | A method author can direct the compiler to create and install methods 114 | in any class at any time, while the system is running. This makes the 115 | system **dynamic**. The system is always running, and every 116 | modification that can be made to the system can be done with the 117 | system. This makes the system **reflective**; it models itself. Even 118 | the processor is implemented as objects sending messages. 119 | 120 | All the objects in the system together form the **memory** of the 121 | processor. Like a laptop's processor, the method instruction processor 122 | can make a **snapshot** of its memory at a particular moment, suspend 123 | operation, and resume operation with the snapshot later. This is known 124 | as **suspending** and **resuming** a memory. The console lets you 125 | discover and manipulate memory snapshots. 126 | 127 | ***sharing memories*** 128 | 129 | The app directory is also 130 | a git repository, 131 | with a submodule repo nested within it for 132 | each locally-installed memory. Note that none of this structure is 133 | signed for any host platform. I'll set up a separate site for 134 | downloading properly-signed releases. When newly cloned, the master 135 | repo contains multiple installed memories: a **console** memory, and a 136 | **development** memory for each supported Smalltalk distribution. 137 | 138 | Currently, Squeak is supported. The 139 | next target is Pharo. We intend to 140 | support all distributions, including: 141 | 142 | - Squeak 143 | 144 | - Pharo 145 | 146 | - VisualWorks 147 | 148 | - VA 149 | Smalltalk 150 | 151 | - GemStone/S 152 | 153 | - GNU Smalltalk 154 | 155 | Please create an issue if we missed one. Thanks! 156 | 157 | For each memory you want to install locally, clone its repo directory 158 | to .../context.app/Contents/RUNME/memories/. 159 | 160 | The console memory contains the objects necessary to support essential 161 | object behavior, to grow itself through live synchronization with 162 | other memories, and to communicate through web services. A development 163 | memory has modules installed to support a development environment (a 164 | graphical interface, compiler, inspectors, debugger, etc.). 165 | 166 | A system includes a pair of memories: a **subject** and a 167 | **history**. Each history memory records the edit history of its 168 | subject, and synchronizes it with other subjects. It has no direct 169 | human interface support (it's **headless**), because it only needs to 170 | communicate with its subject memory. It communicates via **remote 171 | messages**: messages from objects in one memory to objects in another 172 | memory (run by a processor on any net-connected physical machine). 173 | 174 | The console memory is also headless; there's a web server running 175 | there. The Context app resumes the console memory, and the console 176 | memory resumes its web server. The Context app then opens a host web 177 | browser that visits the console web server. The behavior of the 178 | console (for example, resuming a GUI memory) is then provided as a web 179 | service. 180 | 181 | The console can interpret **command links**, special URLs which encode 182 | commands for controlling memories. When you click on a command link, 183 | the initial console answers a web page asking which live memory should 184 | perform the command. The chosen memory asks for confirmation before 185 | proceeding, through its own console. One thing a command can prescribe 186 | is module installation, using synchronization information in the 187 | link. Module and links for installing them can be cited together on 188 | web pages, indexed by search engines for later discovery. 189 | 190 | The console memory can become the history memory for another 191 | system. By installing modules, any memory can grow to include a set of 192 | apps. You can also unload modules. 193 | 194 | You're almost in **Context**. To get there, start the console: 195 | 196 | - On Mac OS, double-click the app containing this file. 197 | 198 | - On Windows, double-click **windows/context.vbs** 199 | 200 | - On Linux, run **linux/context.sh** 201 | 202 | -------------------------------------------------------------------------------- /context.app/Contents/RUNME/linux/context.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | ../Contents/Resources/Spoon\ 3\ beta\ 5\ processor.app/Contents/Linux/lib/spoon/4.4.7-2357/spoonvm ../Contents/Resources/Spoon\ 3\ beta\ 5\ processor.app/Contents/Resources/946BE974-48B7-4D11-B209-6355B3E49722.image & 4 | sleep 5 5 | xdg-open http://localhost:8090/README.html & 6 | -------------------------------------------------------------------------------- /context.app/Contents/RUNME/linux/memories: -------------------------------------------------------------------------------- 1 | ../../Resources/context processor.app/Contents/Resources/context/memories -------------------------------------------------------------------------------- /context.app/Contents/RUNME/mac/context.app: -------------------------------------------------------------------------------- 1 | ../../../../context.app -------------------------------------------------------------------------------- /context.app/Contents/RUNME/mac/memories: -------------------------------------------------------------------------------- 1 | ../../Resources/context processor.app/Contents/Resources/context/memories -------------------------------------------------------------------------------- /context.app/Contents/RUNME/windows/context.vbs: -------------------------------------------------------------------------------- 1 | ' Start the Context console, a minimal web server one may use 2 | ' from a web browser to control Contexts. 3 | 4 | set shell = createobject("wscript.shell") 5 | shell.CurrentDirectory = "..\..\.." 6 | shell.run "..\win32\spoon.exe 946BE974-48B7-4D11-B209-6355B3E49722.image" 7 | ' Allow some time for the web server to start. 8 | WScript.Sleep 2000 9 | shell.run "iexplore http://localhost:8090/README.html" 10 | -------------------------------------------------------------------------------- /context.app/Contents/Resources/Scripts/main.scpt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/Scripts/main.scpt -------------------------------------------------------------------------------- /context.app/Contents/Resources/applet.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/applet.icns -------------------------------------------------------------------------------- /context.app/Contents/Resources/applet.rsrc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/applet.rsrc -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | BuildMachineOSBuild 6 | 10K540 7 | CFBundleDevelopmentRegion 8 | English 9 | CFBundleDocumentTypes 10 | 11 | 12 | CFBundleTypeExtensions 13 | 14 | image 15 | 16 | CFBundleTypeIconFile 17 | contextImage.icns 18 | CFBundleTypeName 19 | context Image File 20 | CFBundleTypeOSTypes 21 | 22 | STim 23 | 24 | CFBundleTypeRole 25 | Editor 26 | 27 | 28 | CFBundleTypeExtensions 29 | 30 | sources 31 | 32 | CFBundleTypeIconFile 33 | contextSources.icns 34 | CFBundleTypeName 35 | context Sources File 36 | CFBundleTypeOSTypes 37 | 38 | STso 39 | 40 | CFBundleTypeRole 41 | Editor 42 | 43 | 44 | CFBundleTypeExtensions 45 | 46 | changes 47 | 48 | CFBundleTypeIconFile 49 | contextChanges.icns 50 | CFBundleTypeName 51 | context Changes File 52 | CFBundleTypeOSTypes 53 | 54 | STch 55 | 56 | CFBundleTypeRole 57 | Editor 58 | 59 | 60 | CFBundleTypeExtensions 61 | 62 | sobj 63 | 64 | CFBundleTypeIconFile 65 | SqueakScript.icns 66 | CFBundleTypeName 67 | Squeak Script File 68 | CFBundleTypeOSTypes 69 | 70 | SOBJ 71 | 72 | CFBundleTypeRole 73 | Editor 74 | 75 | 76 | CFBundleTypeExtensions 77 | 78 | pr 79 | 80 | CFBundleTypeIconFile 81 | SqueakProject.icns 82 | CFBundleTypeName 83 | Squeak Project File 84 | CFBundleTypeOSTypes 85 | 86 | STpr 87 | 88 | CFBundleTypeRole 89 | Editor 90 | 91 | 92 | CFBundleTypeName 93 | JPEG 94 | CFBundleTypeOSTypes 95 | 96 | JPEG 97 | 98 | CFBundleTypeRole 99 | Viewer 100 | 101 | 102 | CFBundleTypeName 103 | TEXT 104 | CFBundleTypeOSTypes 105 | 106 | TEXT 107 | 108 | CFBundleTypeRole 109 | Viewer 110 | 111 | 112 | CFBundleTypeName 113 | ttro 114 | CFBundleTypeOSTypes 115 | 116 | ttro 117 | 118 | CFBundleTypeRole 119 | Viewer 120 | 121 | 122 | CFBundleTypeName 123 | HTML 124 | CFBundleTypeOSTypes 125 | 126 | HTML 127 | 128 | CFBundleTypeRole 129 | Viewer 130 | 131 | 132 | CFBundleTypeName 133 | RTF 134 | CFBundleTypeOSTypes 135 | 136 | RTF 137 | 138 | CFBundleTypeRole 139 | Viewer 140 | 141 | 142 | CFBundleTypeName 143 | TIFF 144 | CFBundleTypeOSTypes 145 | 146 | TIFF 147 | 148 | CFBundleTypeRole 149 | Viewer 150 | 151 | 152 | CFBundleTypeName 153 | PICT 154 | CFBundleTypeOSTypes 155 | 156 | PICT 157 | 158 | CFBundleTypeRole 159 | Viewer 160 | 161 | 162 | CFBundleTypeName 163 | URL 164 | CFBundleTypeOSTypes 165 | 166 | URL 167 | 168 | CFBundleTypeRole 169 | Viewer 170 | 171 | 172 | CFBundleTypeName 173 | ZIP 174 | CFBundleTypeOSTypes 175 | 176 | ZIP 177 | 178 | CFBundleTypeRole 179 | Viewer 180 | 181 | 182 | CFBundleTypeName 183 | zip 184 | CFBundleTypeOSTypes 185 | 186 | zip 187 | 188 | CFBundleTypeRole 189 | Viewer 190 | 191 | 192 | CFBundleTypeName 193 | BINA 194 | CFBundleTypeOSTypes 195 | 196 | BINA 197 | 198 | CFBundleTypeRole 199 | Viewer 200 | 201 | 202 | CFBundleTypeName 203 | GIFf 204 | CFBundleTypeOSTypes 205 | 206 | GIFf 207 | 208 | CFBundleTypeRole 209 | Viewer 210 | 211 | 212 | CFBundleTypeName 213 | PNGf 214 | CFBundleTypeOSTypes 215 | 216 | PNGf 217 | 218 | CFBundleTypeRole 219 | Viewer 220 | 221 | 222 | CFBundleTypeName 223 | MP3 224 | CFBundleTypeOSTypes 225 | 226 | MP3 227 | 228 | CFBundleTypeRole 229 | Viewer 230 | 231 | 232 | CFBundleTypeName 233 | MP3! 234 | CFBundleTypeOSTypes 235 | 236 | MP3! 237 | 238 | CFBundleTypeRole 239 | Viewer 240 | 241 | 242 | CFBundleTypeName 243 | MP3U 244 | CFBundleTypeOSTypes 245 | 246 | MP3U 247 | 248 | CFBundleTypeRole 249 | Viewer 250 | 251 | 252 | CFBundleTypeName 253 | MPEG 254 | CFBundleTypeOSTypes 255 | 256 | MPEG 257 | 258 | CFBundleTypeRole 259 | Viewer 260 | 261 | 262 | CFBundleTypeName 263 | mp3! 264 | CFBundleTypeOSTypes 265 | 266 | mp3! 267 | 268 | CFBundleTypeRole 269 | Viewer 270 | 271 | 272 | CFBundleTypeName 273 | MPG2 274 | CFBundleTypeOSTypes 275 | 276 | MPG2 277 | 278 | CFBundleTypeRole 279 | Viewer 280 | 281 | 282 | CFBundleTypeName 283 | MPG3 284 | CFBundleTypeOSTypes 285 | 286 | MPG3 287 | 288 | CFBundleTypeRole 289 | Viewer 290 | 291 | 292 | CFBundleTypeName 293 | MPG 294 | CFBundleTypeOSTypes 295 | 296 | MPG 297 | 298 | CFBundleTypeRole 299 | Viewer 300 | 301 | 302 | CFBundleTypeName 303 | Mp3 304 | CFBundleTypeOSTypes 305 | 306 | mp3 307 | 308 | CFBundleTypeRole 309 | Viewer 310 | 311 | 312 | CFBundleTypeName 313 | M3U 314 | CFBundleTypeOSTypes 315 | 316 | M3U 317 | 318 | CFBundleTypeRole 319 | Viewer 320 | 321 | 322 | CFBundleTypeName 323 | SRCS 324 | CFBundleTypeOSTypes 325 | 326 | SRCS 327 | 328 | CFBundleTypeRole 329 | Viewer 330 | 331 | 332 | CFBundleTypeName 333 | Chng 334 | CFBundleTypeOSTypes 335 | 336 | Chng 337 | 338 | CFBundleTypeRole 339 | Viewer 340 | 341 | 342 | CFBundleTypeName 343 | HPS5 344 | CFBundleTypeOSTypes 345 | 346 | HPS5 347 | 348 | CFBundleTypeRole 349 | Viewer 350 | 351 | 352 | CFBundleExecutable 353 | context VM Opt 354 | CFBundleGetInfoString 355 | context VM 4.2.5b1 http://netjam.org/context 356 | CFBundleIconFile 357 | context.icns 358 | CFBundleIdentifier 359 | org.squeak.context 360 | CFBundleInfoDictionaryVersion 361 | 6.0 362 | CFBundleName 363 | context 3 beta 5 364 | CFBundlePackageType 365 | APPL 366 | CFBundleShortVersionString 367 | context VM 4.2.5b1 368 | CFBundleSignature 369 | FART 370 | CFBundleVersion 371 | 4.2.5b1 372 | CGDisableCoalescedUpdates 373 | 374 | DTCompiler 375 | 4.2 376 | DTPlatformBuild 377 | 4A2002a 378 | DTPlatformVersion 379 | GM 380 | DTSDKBuild 381 | 4A2002a 382 | DTSDKName 383 | macosx10.6 384 | DTXcode 385 | 0402 386 | DTXcodeBuild 387 | 4A2002a 388 | LSBackgroundOnly 389 | 1 390 | LSApplicationCategoryType 391 | public.app-category.developer-tools 392 | NSServices 393 | 394 | 395 | NSMenuItem 396 | 397 | default 398 | Squeak DoIt 399 | 400 | NSMessage 401 | doitandreturn 402 | NSPortName 403 | Squeak 404 | NSReturnTypes 405 | 406 | NSStringPboardType 407 | 408 | NSSendTypes 409 | 410 | NSStringPboardType 411 | 412 | 413 | 414 | SqueakBrowserMouseCmdButton1 415 | 3 416 | SqueakBrowserMouseCmdButton2 417 | 3 418 | SqueakBrowserMouseCmdButton3 419 | 2 420 | SqueakBrowserMouseControlButton1 421 | 1 422 | SqueakBrowserMouseControlButton2 423 | 3 424 | SqueakBrowserMouseControlButton3 425 | 2 426 | SqueakBrowserMouseNoneButton1 427 | 1 428 | SqueakBrowserMouseNoneButton2 429 | 3 430 | SqueakBrowserMouseNoneButton3 431 | 2 432 | SqueakBrowserMouseOptionButton1 433 | 2 434 | SqueakBrowserMouseOptionButton2 435 | 3 436 | SqueakBrowserMouseOptionButton3 437 | 2 438 | SqueakDebug 439 | 0 440 | SqueakEncodingType 441 | UTF-8 442 | SqueakExplicitWindowOpenNeeded 443 | 444 | SqueakFloatingWindowGetsFocus 445 | 446 | SqueakImageName 447 | 946BE974-48B7-4D11-B209-6355B3E49722 448 | SqueakMaxHeapSize 449 | 536870912 450 | SqueakMouseCmdButton1 451 | 3 452 | SqueakMouseCmdButton2 453 | 3 454 | SqueakMouseCmdButton3 455 | 2 456 | SqueakMouseControlButton1 457 | 1 458 | SqueakMouseControlButton2 459 | 3 460 | SqueakMouseControlButton3 461 | 2 462 | SqueakMouseNoneButton1 463 | 1 464 | SqueakMouseNoneButton2 465 | 3 466 | SqueakMouseNoneButton3 467 | 2 468 | SqueakMouseOptionButton1 469 | 2 470 | SqueakMouseOptionButton2 471 | 3 472 | SqueakMouseOptionButton3 473 | 2 474 | SqueakPluginsBuiltInOrLocalOnly 475 | 476 | SqueakQuitOnQuitAppleEvent 477 | 478 | SqueakResourceDirectory 479 | ./ 480 | SqueakTrustedDirectory 481 | /foobar/tooBar/forSqueak/bogus/ 482 | SqueakUIFlushPrimaryDeferNMilliseconds 483 | 20 484 | SqueakUIFlushSecondaryCheckForPossibleNeedEveryNMilliseconds 485 | 20 486 | SqueakUIFlushSecondaryCleanupDelayMilliseconds 487 | 25 488 | SqueakUIFlushUseHighPercisionClock 489 | 490 | SqueakUnTrustedDirectory 491 | ~/Library/Preferences/Squeak/Internet/My Squeak/ 492 | SqueakUseFileMappedMMAP 493 | 494 | SqueakWindowAttribute 495 | 496 | ggAAHg== 497 | 498 | SqueakWindowHasTitle 499 | 500 | SqueakWindowType 501 | 6 502 | UTExportedTypeDeclarations 503 | 504 | 505 | UTTypeConformsTo 506 | 507 | public.data 508 | 509 | UTTypeDescription 510 | Squeak Image File 511 | UTTypeIdentifier 512 | org.squeak.image 513 | UTTypeTagSpecification 514 | 515 | com.apple.ostype 516 | STim 517 | public.filename-extension 518 | 519 | image 520 | 521 | public.mime-type 522 | application/squeak-image 523 | 524 | 525 | 526 | UTTypeConformsTo 527 | 528 | public.utf8-plain-text 529 | 530 | UTTypeDescription 531 | Squeak Sources File 532 | UTTypeIdentifier 533 | org.squeak.sources 534 | UTTypeTagSpecification 535 | 536 | com.apple.ostype 537 | STso 538 | public.filename-extension 539 | 540 | sources 541 | 542 | public.mime-type 543 | application/squeak-sources 544 | 545 | 546 | 547 | UTTypeConformsTo 548 | 549 | public.utf8-plain-text 550 | 551 | UTTypeDescription 552 | Squeak Changes File 553 | UTTypeIdentifier 554 | org.squeak.changes 555 | UTTypeTagSpecification 556 | 557 | com.apple.ostype 558 | STch 559 | public.filename-extension 560 | 561 | changes 562 | 563 | public.mime-type 564 | application/squeak-changes 565 | 566 | 567 | 568 | UTTypeConformsTo 569 | 570 | public.data 571 | 572 | UTTypeDescription 573 | Squeak Script File 574 | UTTypeIdentifier 575 | org.squeak.script 576 | UTTypeTagSpecification 577 | 578 | com.apple.ostype 579 | SOBJ 580 | public.filename-extension 581 | 582 | sobj 583 | 584 | public.mime-type 585 | application/squeak-script 586 | 587 | 588 | 589 | UTTypeConformsTo 590 | 591 | public.data 592 | 593 | UTTypeDescription 594 | Squeak Project File 595 | UTTypeIdentifier 596 | org.squeak.project 597 | UTTypeTagSpecification 598 | 599 | com.apple.ostype 600 | STpr 601 | public.filename-extension 602 | 603 | pr 604 | 605 | public.mime-type 606 | application/x-squeak-project 607 | 608 | 609 | 610 | 611 | 612 | -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/JavaScript/Flow.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Flow.js: networking plugin for the SqueakJS virtual machine. 3 | * 4 | */ 5 | 6 | function Flow() { 7 | var interpreterProxy, 8 | primHandler; 9 | 10 | function setInterpreter(anInterpreterProxy) { 11 | // Slang interface 12 | interpreterProxy = anInterpreterProxy; 13 | // PrimHandler methods for convenience 14 | primHandler = interpreterProxy.vm.primHandler; 15 | // success 16 | return true;}; 17 | 18 | function enableResolver(resolverHandle) { 19 | if (argCount !== 1) return false; // fail 20 | var resolverHandle = interpreterProxy.stackObjectValue(0); 21 | if (interpreterProxy.failed()) return false; // fail 22 | interpreterProxy.storePointerOfObjectwithValue( 23 | 24 | 25 | 26 | var result = examplePrimitiveHelperFunction(which); 27 | if (!result) return false; // fail 28 | var resultObj = primHandler.makeStString(result); 29 | interpreterProxy.popthenPush(1 + argCount, resultObj); 30 | return true; // success}; 31 | 32 | // hide private functions 33 | return { 34 | setInterpreter: setInterpreter, 35 | examplePrimitive: examplePrimitiveInfo,}}; 36 | 37 | // register plugin in global Squeak object 38 | window.addEventListener("load", function() { 39 | Squeak.registerExternalModule('Flow', Flow());}); 40 | 41 | -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Library/QuickLook/SqueakQL.qlgenerator/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleDocumentTypes 8 | 9 | 10 | CFBundleTypeRole 11 | QLGenerator 12 | LSItemContentTypes 13 | 14 | org.squeak.project 15 | 16 | 17 | 18 | CFBundleExecutable 19 | SqueakQL 20 | CFBundleIdentifier 21 | org.squeak.qlgenerator.SqueakQL 22 | CFBundleInfoDictionaryVersion 23 | 6.0 24 | CFBundleName 25 | SqueakQL 26 | CFBundleShortVersionString 27 | 1 28 | CFBundleVersion 29 | 1.0 30 | CFPlugInDynamicRegisterFunction 31 | 32 | CFPlugInDynamicRegistration 33 | NO 34 | CFPlugInFactories 35 | 36 | FFD8E9C9-4777-4502-811C-15503F9D31EA 37 | QuickLookGeneratorPluginFactory 38 | 39 | CFPlugInTypes 40 | 41 | 5E2D9680-5022-40FA-B806-43349622E5B9 42 | 43 | FFD8E9C9-4777-4502-811C-15503F9D31EA 44 | 45 | 46 | CFPlugInUnloadFunction 47 | 48 | QLNeedsToBeRunInMainThread 49 | 50 | QLPreviewHeight 51 | 0 52 | QLPreviewWidth 53 | 0 54 | QLSupportsConcurrentRequests 55 | 56 | QLThumbnailMinimumSize 57 | 17 58 | 59 | 60 | -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Library/QuickLook/SqueakQL.qlgenerator/Contents/MacOS/SqueakQL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/Library/QuickLook/SqueakQL.qlgenerator/Contents/MacOS/SqueakQL -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Library/QuickLook/SqueakQL.qlgenerator/Contents/MacOS/SqueakQL.sig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/Library/QuickLook/SqueakQL.qlgenerator/Contents/MacOS/SqueakQL.sig -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Library/QuickLook/SqueakQL.qlgenerator/Contents/Resources/English.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/Library/QuickLook/SqueakQL.qlgenerator/Contents/Resources/English.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Linux/bin/spoon: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # Launch spoonvm from the command line or a menu script, with a good 4 | # plugin path, text encodings and pulseaudio kludge 5 | # 6 | # Last edited: 2011-06-20 17:25:29 by craig on netjam 7 | 8 | PATH=/usr/bin:/bin 9 | 10 | realpath () { 11 | path="$1" 12 | while test -L "${path}"; do 13 | dir=`dirname "${path}"` 14 | dir=`cd "${dir}" && pwd -P` 15 | path=`basename "${path}"` 16 | path=`ls -l "${dir}/${path}" | sed 's,.* -> ,,'` 17 | if test `expr "${path}" : "/"` -eq 0; then 18 | path="${dir}/${path}" 19 | fi 20 | done 21 | if test -d "${path}"; then 22 | (cd "${path}" && pwd -P) 23 | else 24 | dir=`dirname "${path}"` 25 | base=`basename "${path}"` 26 | (cd "${dir}" && echo "`pwd -P`/${base}") 27 | fi 28 | } 29 | 30 | bindir=`realpath "${0}"` 31 | bindir=`dirname "${bindir}"` 32 | prefix=`dirname "${bindir}"` 33 | libdir="${prefix}/lib/spoon" 34 | plgdir="${libdir}/4.4.7-2357" 35 | useoss="true" 36 | vm="spoonvm" 37 | plugins="" 38 | wrapper="" 39 | 40 | for opt in $*; do 41 | case ${opt} in 42 | -vm-sound*) useoss="false";; 43 | -vm) case "$2" in sound*) useoss="false"; esac;; 44 | esac 45 | done 46 | 47 | # find the vm and set the plugin path 48 | 49 | if test -x "${plgdir}/${vm}"; then # bin/spoon -> lib/spoon/x.y-z/spoonvm 50 | vm="${plgdir}/${vm}" 51 | plugins="${plgdir}" 52 | elif test -x "${bindir}/${vm}"; then # bld/spoon -> bld/spoonvm 53 | vm="${bindir}/${vm}" 54 | plugins="${bindir}/%n" 55 | elif test -x `which ${vm}`; then 56 | vm=`which ${vm}` 57 | plugins="" 58 | else 59 | echo "cannot find ${vm}" >&2 60 | exit 1 61 | fi 62 | 63 | # command-line overrides environment, so communicate anything we decide here via the environment 64 | 65 | if test -z "${SQUEAK_PATHENC}"; then SQUEAK_PATHENC="UTF-8"; export SQUEAK_PATHENC; fi 66 | if test -z "${SQUEAK_ENCODING}"; then SQUEAK_ENCODING="UTF-8"; export SQUEAK_ENCODING; fi 67 | 68 | if test -z "${SQUEAK_PLUGINS}"; then 69 | if test -n "${plugins}"; then 70 | SQUEAK_PLUGINS="${plugins}" 71 | export SQUEAK_PLUGINS 72 | fi 73 | fi 74 | 75 | # deal with pulseaudio if it is running 76 | 77 | if test -z "${SQUEAK_VM}"; then 78 | if ${useoss}; then 79 | if pulseaudio --check 2>/dev/null; then 80 | if padsp true 2>/dev/null; then 81 | wrapper="padsp" 82 | SQUEAK_VM="sound-OSS" 83 | export SQUEAK_VM 84 | fi 85 | fi 86 | fi 87 | fi 88 | 89 | # fix broken locales 90 | 91 | if test -z "$LC_ALL"; then 92 | LC_ALL="$LANG" 93 | export LC_ALL 94 | fi 95 | 96 | # debug output 97 | 98 | if test "0$SQUEAK_DEBUG" -gt "0"; then 99 | set | fgrep SQUEAK_ 100 | set -x 101 | fi 102 | 103 | # run the vm 104 | 105 | exec ${wrapper} "${vm}" "$@" 106 | -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Linux/bin/spoon.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # Launch spoon from a menu, prompting for and/or installing an image 4 | # 5 | # Last edited: 2011-07-20 16:30:21 by craig on netjam 6 | 7 | PATH=/usr/bin:/bin 8 | 9 | if pwd -P 2>/dev/null 1>&2; then pwd="pwd -P"; else pwd="pwd"; fi 10 | 11 | me=`basename $0` 12 | bindir=`dirname $0` 13 | bindir=`cd ${bindir}; ${pwd}` 14 | prefix=`dirname ${bindir}` 15 | libdir="${prefix}/lib/spoon" 16 | vm="spoon" 17 | 18 | # find a way to display dialogues 19 | 20 | if test -n "$DISPLAY" -a -x "`which kdialog 2>/dev/null`"; then 21 | error () { kdialog --error "${me}: $*"; exit 1; } 22 | confirm () { if kdialog --yesno "${1} ${2}?"; then result="${2}"; else result=""; fi; } 23 | chooseItem () { title="$1"; shift; result=`kdialog --combobox "${title}" $*`; } 24 | findFile () { result=`kdialog --title "$1" --getopenfilename . '*.image'`; } 25 | findDirectory () { result=`kdialog --title "$1" --getexistingdirectory .`; } 26 | elif [ -n "$DISPLAY" -a -x "`which zenity 2>/dev/null`" ]; then 27 | error () { zenity --error --text "${me}: $*"; exit 1; } 28 | confirm () { if zenity --question --text="${1} ${2}?"; then result="${2}"; else result=""; fi; } 29 | chooseItem () { title="$1"; shift; result=`zenity --title "${title}" --list --column Images $*`; } 30 | findFile () { result=`zenity --title "$1" --file-selection --file-filter='*.image'`; } 31 | findDirectory () { result=`zenity --title "$1" --file-selection --directory`; } 32 | else 33 | error () { echo "${me}: $*" >&2; exit 1; } 34 | confirm () { error "this cannot happen"; } 35 | chooseItem () { error "this cannot happen"; } 36 | findFile () { error "no image name specified"; } 37 | findDirectory () { error "this cannot happen"; } 38 | fi 39 | 40 | # succeed if there are two or more arguments 41 | 42 | plural () { test -n "$2"; } 43 | 44 | # find the VM 45 | 46 | if test -x "${bindir}/${vm}"; then 47 | vm="${bindir}/${vm}" 48 | elif test -x "`which ${vm} 2>/dev/null`"; then 49 | vm="`which ${vm} 2>/dev/null`" 50 | else 51 | error "Cannot find ${vm}" 52 | fi 53 | 54 | # if we have arguments then assume an image name was given or we came 55 | # from a command line 56 | 57 | if test $# -gt 0; then 58 | exec "${vm}" "$@" 59 | fi 60 | 61 | # findFile "Choose a saved image to resume or cancel to install a new one" 62 | result=../../Resources/Spoon3alpha4.image 63 | 64 | if test -z "${result}"; then 65 | images="" 66 | if test -d "${libdir}"; then 67 | images=`cd "${libdir}"; ls *.image 2>/dev/null` 68 | fi 69 | if test -z "${images}"; then 70 | error "no image name specified and no images found in ${libdir}" 71 | exit 1 72 | fi 73 | if plural ${images}; then 74 | chooseItem "Choose an image to install" ${images} 75 | else 76 | confirm "Install image" ${images} 77 | fi 78 | if test -z "${result}"; then 79 | exit 0 80 | fi 81 | image=${result} 82 | changes=`basename ${image} .image`.changes 83 | findDirectory "Choose a destination directory for the image" 84 | if test -z "${result}"; then 85 | exit 0 86 | fi 87 | if test -e "${result}/${image}"; then 88 | confirm "Overwrite existing ${image} in" "${result}" 89 | if test -z "${result}"; then 90 | exit 0; 91 | fi 92 | fi 93 | cp -p "${libdir}/${image}" "${result}/." 94 | cp -p "${libdir}/${changes}" "${result}/." 95 | ln -s "${libdir}"/*.sources "${result}/." 96 | image="${result}/${image}" 97 | else 98 | image="${result}" 99 | fi 100 | 101 | cd "`dirname ${image}`" 102 | exec "${vm}" "`basename ${image}`" 103 | -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Linux/lib/spoon/4.4.7-2357/activeFilesystem.changes: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/Linux/lib/spoon/4.4.7-2357/activeFilesystem.changes -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Linux/lib/spoon/4.4.7-2357/activeFilesystem.image: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/Linux/lib/spoon/4.4.7-2357/activeFilesystem.image -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Linux/lib/spoon/4.4.7-2357/so.AioPlugin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/Linux/lib/spoon/4.4.7-2357/so.AioPlugin -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Linux/lib/spoon/4.4.7-2357/so.ClipboardExtendedPlugin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/Linux/lib/spoon/4.4.7-2357/so.ClipboardExtendedPlugin -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Linux/lib/spoon/4.4.7-2357/so.FileCopyPlugin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/Linux/lib/spoon/4.4.7-2357/so.FileCopyPlugin -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Linux/lib/spoon/4.4.7-2357/so.Flow: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/Linux/lib/spoon/4.4.7-2357/so.Flow -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Linux/lib/spoon/4.4.7-2357/so.HostWindowPlugin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/Linux/lib/spoon/4.4.7-2357/so.HostWindowPlugin -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Linux/lib/spoon/4.4.7-2357/so.KedamaPlugin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/Linux/lib/spoon/4.4.7-2357/so.KedamaPlugin -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Linux/lib/spoon/4.4.7-2357/so.KedamaPlugin2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/Linux/lib/spoon/4.4.7-2357/so.KedamaPlugin2 -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Linux/lib/spoon/4.4.7-2357/so.MIDIPlugin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/Linux/lib/spoon/4.4.7-2357/so.MIDIPlugin -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Linux/lib/spoon/4.4.7-2357/so.Mpeg3Plugin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/Linux/lib/spoon/4.4.7-2357/so.Mpeg3Plugin -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Linux/lib/spoon/4.4.7-2357/so.Squeak3D: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/Linux/lib/spoon/4.4.7-2357/so.Squeak3D -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Linux/lib/spoon/4.4.7-2357/so.SqueakFFIPrims: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/Linux/lib/spoon/4.4.7-2357/so.SqueakFFIPrims -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Linux/lib/spoon/4.4.7-2357/so.UnixOSProcessPlugin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/Linux/lib/spoon/4.4.7-2357/so.UnixOSProcessPlugin -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Linux/lib/spoon/4.4.7-2357/so.XDisplayControlPlugin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/Linux/lib/spoon/4.4.7-2357/so.XDisplayControlPlugin -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Linux/lib/spoon/4.4.7-2357/so.vm-display-X11: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/Linux/lib/spoon/4.4.7-2357/so.vm-display-X11 -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Linux/lib/spoon/4.4.7-2357/so.vm-display-custom: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/Linux/lib/spoon/4.4.7-2357/so.vm-display-custom -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Linux/lib/spoon/4.4.7-2357/so.vm-display-fbdev: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/Linux/lib/spoon/4.4.7-2357/so.vm-display-fbdev -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Linux/lib/spoon/4.4.7-2357/so.vm-display-null: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/Linux/lib/spoon/4.4.7-2357/so.vm-display-null -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Linux/lib/spoon/4.4.7-2357/so.vm-sound-ALSA: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/Linux/lib/spoon/4.4.7-2357/so.vm-sound-ALSA -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Linux/lib/spoon/4.4.7-2357/so.vm-sound-OSS: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/Linux/lib/spoon/4.4.7-2357/so.vm-sound-OSS -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Linux/lib/spoon/4.4.7-2357/so.vm-sound-custom: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/Linux/lib/spoon/4.4.7-2357/so.vm-sound-custom -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Linux/lib/spoon/4.4.7-2357/so.vm-sound-null: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/Linux/lib/spoon/4.4.7-2357/so.vm-sound-null -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Linux/lib/spoon/4.4.7-2357/spoonvm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/Linux/lib/spoon/4.4.7-2357/spoonvm -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/MacOS/Pharo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/MacOS/Pharo -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/MacOS/Spoon VM Opt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/MacOS/Spoon VM Opt -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/MacOS/Squeak: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/MacOS/Squeak -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/PkgInfo: -------------------------------------------------------------------------------- 1 | APPLFAST -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Resources/.lldbinit: -------------------------------------------------------------------------------- 1 | settings set target.run-args ~/Spoon/releases/contents/946BE974-48B7-4D11-B209-6355B3E49722.image 2 | breakpoint set -n breakHere 3 | r 4 | -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Resources/Flow.bundle/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | BuildMachineOSBuild 6 | 13C64 7 | CFBundleDevelopmentRegion 8 | English 9 | CFBundleExecutable 10 | flow 11 | CFBundleIdentifier 12 | com.apple.carbonbundletemplate 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1.0 23 | CSResourcesFileMapped 24 | 25 | DTCompiler 26 | com.apple.compilers.llvm.clang.1_0 27 | DTPlatformBuild 28 | 5B90f 29 | DTPlatformVersion 30 | GM 31 | DTSDKBuild 32 | 13A595 33 | DTSDKName 34 | macosx10.9 35 | DTXcode 36 | 0510 37 | DTXcodeBuild 38 | 5B90f 39 | 40 | 41 | -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Resources/Flow.bundle/Contents/MacOS/Flow: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/Resources/Flow.bundle/Contents/MacOS/Flow -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Resources/Flow.bundle/Contents/Resources/English.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/Resources/Flow.bundle/Contents/Resources/English.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Resources/Flow.bundle/Contents/Resources/libportmidi.dylib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/Resources/Flow.bundle/Contents/Resources/libportmidi.dylib -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Resources/context/changes/memory/1-ContextPrecursors-crl.1.mcz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/Resources/context/changes/memory/1-ContextPrecursors-crl.1.mcz -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Resources/context/changes/memory/2-Context-crl.2.mcz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/Resources/context/changes/memory/2-Context-crl.2.mcz -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Resources/context/changes/processor/2 of 4 - unused-method removal.cs: -------------------------------------------------------------------------------- 1 | 'From Squeak4.2 of 4 February 2011 [latest update: #10966] on 2 November 2013 at 3:36:46 pm'! Object subclass: #ObjectMemory instanceVariableNames: 'memory youngStart endOfMemory memoryLimit nilObj falseObj trueObj specialObjectsOop rootTable rootTableCount extraRoots extraRootCount weakRoots weakRootCount child field parentField freeBlock lastHash allocationCount lowSpaceThreshold signalLowSpace compStart compEnd fwdTableNext fwdTableLast remapBuffer remapBufferCount allocationsBetweenGCs tenuringThreshold gcSemaphoreIndex gcBiasToGrow gcBiasToGrowGCLimit gcBiasToGrowThreshold statFullGCs statFullGCMSecs statIncrGCs statIncrGCMSecs statTenures statRootTableOverflows freeContexts freeLargeContexts interruptCheckCounter totalObjectCount shrinkThreshold growHeadroom headerTypeBytes youngStartLocal statMarkCount statSweepCount statMkFwdCount statCompMoveCount statGrowMemory statShrinkMemory statRootTableCount statAllocationCount statSurvivorCount statGCTime statSpecialMarkCount statIGCDeltaTime statpendingFinalizationSignals forceTenureFlag' classVariableNames: 'BlockContextProto Byte0Mask Byte0Shift Byte1Mask Byte1Shift Byte1ShiftNegated Byte2Mask Byte2Shift Byte3Mask Byte3Shift Byte3ShiftNegated Byte4Mask Byte4Shift Byte4ShiftNegated Byte5Mask Byte5Shift Byte5ShiftNegated Byte6Mask Byte6Shift Byte7Mask Byte7Shift Byte7ShiftNegated Bytes3to0Mask Bytes7to4Mask ClassPseudoContext ClassTranslatedMethod ContextFixedSizePlusHeader DoAssertionChecks DoBalanceChecks Done ExtraRootSize GCTopMarker HashBits HeaderTypeClass HeaderTypeFree HeaderTypeGC InvokeCallbackSelector MethodContextProto MethodToReport NilContext RemapBufferSize ReportedMethodID RootTableRedZone RootTableSize StackStart StartField StartObj Upward' poolDictionaries: 'VMObjectIndices VMSqueakV3BytecodeConstants VMSqueakV3ObjectRepresentationConstants' category: 'VMMaker-Interpreter'! !ObjectMemory methodsFor: '*System-Spoon-Virtual Machine Support' stamp: 'crl 3/27/2006 21:11'! isNotStaleMethod: oop | flagByte idByte | (((oop bitAnd: 1) > 0) or: [(((self baseHeader: oop) >> 12) bitAnd: 16r1F) ~= 1]) ifTrue: [^true]. "Assume that all methods associated with contexts have been marked." flagByte := self byteAt: (oop + 4 + (self byteLengthOf: oop) - 1). (flagByte < 252) ifTrue: [idByte := self byteAt: (oop + 4 + (self byteLengthOf: oop) - 3 - flagByte)] ifFalse: [idByte := self byteAt: (oop + 4 + (self byteLengthOf: oop) - 1 - 5)]. ^idByte >= 2r10000000! ! !ObjectMemory methodsFor: '*System-Spoon-Virtual Machine Support' stamp: 'crl 5/22/2011 06:32'! markAndTraceDiscardingStaleMethods: oop "Mark all objects reachable from the given one. Trace from the given object even if it is old. Do not trace if it is already marked. Mark it only if it is a young object." "Tracer state variables: child object being examined field next field of child to examine parentField field where child was stored in its referencing object" | header lastFieldOffset action statMarkCountLocal | header := self longAt: oop. (header bitAnd: self markBit) = 0 ifFalse: [^ 0 "already marked"]. "record tracing status in object's header" header := (header bitAnd: self allButTypeMask) bitOr: HeaderTypeGC. (self oop: oop isGreaterThanOrEqualTo: youngStart) ifTrue: [ header := header bitOr: self markBit ]. "mark only if young" self longAt: oop put: header. "initialize the tracer state machine" parentField := GCTopMarker. child := oop. (self isWeakNonInt: oop) ifTrue: [ "Set lastFieldOffset before the weak fields in the receiver" lastFieldOffset := (self nonWeakFieldsOf: oop) << self shiftForWord. "And remember as weak root" weakRootCount := weakRootCount + 1. weakRoots at: weakRootCount put: oop. ] ifFalse: [ "Do it the usual way" lastFieldOffset := self lastPointerOf: oop. ]. field := oop + lastFieldOffset. action := StartField. youngStartLocal := youngStart. statMarkCountLocal := statMarkCount. "run the tracer state machine until all objects reachable from oop are marked" [action = Done] whileFalse: [ statMarkCountLocal := statMarkCountLocal + 1. action = StartField ifTrue: [ action := self startField ]. action = StartObj ifTrue: [ action := self startObj ]. action = Upward ifTrue: [ action := self upwardDiscardingStaleMethods ]. ]. statMarkCount := statMarkCountLocal.! ! !ObjectMemory methodsFor: '*System-Spoon-Virtual Machine Support' stamp: 'crl 5/22/2011 06:34'! markPhaseDiscardingStaleMethods "Mark phase of the mark and sweep garbage collector. Set the mark bits of all reachable objects. Free chunks are untouched by this process." "Assume: All non-free objects are initially unmarked. Root objects were unmarked when they were made roots. (Make sure this stays true!!!!)." | oop | "clear the recycled context lists" freeContexts := NilContext. freeLargeContexts := NilContext. "trace the interpreter's objects, including the active stack and special objects array" self markAndTraceInterpreterOopsDiscardingStaleMethods. statSpecialMarkCount := statMarkCount. "trace the roots" 1 to: rootTableCount do: [:i | oop := rootTable at: i. self markAndTraceDiscardingStaleMethods: oop]. 1 to: extraRootCount do:[:i| oop := (extraRoots at: i) at: 0. (self isIntegerObject: oop) ifFalse:[self markAndTraceDiscardingStaleMethods: oop]]. ! ! !ObjectMemory methodsFor: '*System-Spoon-Virtual Machine Support' stamp: 'crl 5/22/2011 06:39'! upwardDiscardingStaleMethods "Return from marking an object below. Incoming: field = oop we just worked on, needs to be put away parentField = where to put it in our object NOTE: Type field of object below has already been restored!!!!!! " | type header | (parentField bitAnd: 1) = 1 ifTrue: [parentField = GCTopMarker ifTrue: ["top of the chain" header := (self longAt: field) bitAnd: self allButTypeMask. type := self rightType: header. self longAt: field put: (header bitOr: type). "install type on class oop" ^ Done] ifFalse: ["was working on the extended class word" child := field. "oop of class" field := parentField - 1. "class word, ** clear the low bit **" parentField := self longAt: field. header := self longAt: field + self bytesPerWord. "base header word" type := self rightType: header. self longAt: field put: (child bitOr: type). "install type on class oop" field := field + self bytesPerWord. "point at header" "restore type bits" header := header bitAnd: self allButTypeMask. self longAt: field put: (header bitOr: type). ^ Upward]] ifFalse: ["normal" child := field. "who we worked on below" field := parentField. "where to put it" parentField := self longAt: field. (self isNotStaleMethod: child) ifTrue: [self longAt: field put: child] ifFalse: [self longAt: field put: nilObj]. field := field - self bytesPerWord. "point at header" ^ StartField]! ! !ObjectMemory methodsFor: '*System-Spoon-Virtual Machine Support' stamp: 'crl 5/22/2011 06:25'! lastPointerOf: oop "Return the byte offset of the last pointer field of the given object. Works with CompiledMethods, as well as ordinary objects. Can be used even when the type bits are not correct." | fmt sz methodHeader header contextSize | header := self baseHeader: oop. fmt := header >> 8 bitAnd: 15. "Use format 5 for marked method dictionaries." fmt <= 5 ifTrue: [((fmt = 3 or: [fmt = 5]) and: [self isContextHeader: header]) ifTrue: ["contexts end at the stack pointer" contextSize := self fetchStackPointerOf: oop. ^ CtxtTempFrameStart + contextSize * self bytesPerWord]. sz := self sizeBitsOfSafe: oop. ^ sz - self baseHeaderSize "all pointers"]. fmt < 12 ifTrue: [^ 0]. "no pointers" "CompiledMethod: contains both pointers and bytes:" methodHeader := self longAt: oop + self baseHeaderSize. ^ (methodHeader >> 10 bitAnd: 255) * self bytesPerWord + self baseHeaderSize! ! !ObjectMemory methodsFor: '*System-Spoon-Virtual Machine Support' stamp: 'crl 10/25/2006 15:16'! isPointersNonInt: oop "Answer true if the argument has only fields that can hold oops. See comment in formatOf:" "Use format 5 for marked method dictionaries." ^ (self formatOf: oop) <= 5! ! !ObjectMemory methodsFor: '*System-Spoon-Virtual Machine Support' stamp: 'crl 5/26/2011 19:22'! fullGCDiscardingStaleMethods "Do a mark/sweep garbage collection of the entire object memory. Free inaccessible objects but do not move them." | startTime | DoAssertionChecks ifTrue: [self reverseDisplayFrom: 0 to: 7]. self preGCAction: true. startTime := self ioMicroSecondClock. statSweepCount := statMarkCount := statMkFwdCount := statCompMoveCount := 0. self clearRootsTable. youngStart := self startOfMemory. "process all of memory" self markPhaseDiscardingStaleMethods. "Sweep phase returns the number of survivors. Use the up-to-date version instead the one from startup." totalObjectCount := self sweepPhase. self fullCompaction. allocationCount := 0. statFullGCs := statFullGCs + 1. statGCTime := self ioMicroSecondClock. statFullGCMSecs := statFullGCMSecs + (statGCTime - startTime). self capturePendingFinalizationSignals. youngStart := freeBlock. "reset the young object boundary" self postGCAction. DoAssertionChecks ifTrue: [self reverseDisplayFrom: 0 to: 7]. ! ! !ObjectMemory methodsFor: '*System-Spoon-Virtual Machine Support' stamp: 'crl 5/22/2011 06:29'! lastPointerWhileForwarding: oop "The given object may have its header word in a forwarding block. Find the offset of the last pointer in the object in spite of this obstacle. " | header fwdBlock fmt size methodHeader contextSize | header := self longAt: oop. (header bitAnd: self markBit) ~= 0 ifTrue: ["oop is forwarded; get its real header from its forwarding table entry" fwdBlock := (header bitAnd: self allButMarkBitAndTypeMask) << 1. DoAssertionChecks ifTrue: [self fwdBlockValidate: fwdBlock]. header := self longAt: fwdBlock + self bytesPerWord]. fmt := header >> 8 bitAnd: 15. "Use format 5 for marked method dictionaries." fmt <= 5 ifTrue: [((fmt = 3 or: [fmt = 5]) and: [self isContextHeader: header]) ifTrue: ["contexts end at the stack pointer" contextSize := self fetchStackPointerOf: oop. ^ CtxtTempFrameStart + contextSize * self bytesPerWord]. "do sizeBitsOf: using the header we obtained" (header bitAnd: TypeMask) = HeaderTypeSizeAndClass ifTrue: [size := (self sizeHeader: oop) bitAnd: self allButTypeMask] ifFalse: [size := header bitAnd: self sizeMask]. ^ size - self baseHeaderSize]. fmt < 12 ifTrue: [^ 0]. "no pointers" methodHeader := self longAt: oop + self baseHeaderSize. ^ (methodHeader >> 10 bitAnd: 255) * self bytesPerWord + self baseHeaderSize! ! !Interpreter methodsFor: '*System-Spoon-Virtual Machine Support' stamp: 'crl 5/25/2011 15:52'! commonVariable: rcvr at: index put: value cacheIndex: atIx "This code assumes the receiver has been identified at location atIx in the atCache." | stSize fmt fixedFields valToPut | stSize := atCache at: atIx+AtCacheSize. ((self oop: index isGreaterThanOrEqualTo: 1) and: [self oop: index isLessThanOrEqualTo: stSize]) ifTrue: [fmt := atCache at: atIx+AtCacheFmt. "Use format 5 for marked method dictionaries." fmt <= 5 ifTrue: [fixedFields := atCache at: atIx+AtCacheFixedFields. ^ self storePointer: index + fixedFields - 1 ofObject: rcvr withValue: value]. fmt < 8 ifTrue: "Bitmap" [valToPut := self positive32BitValueOf: value. self successful ifTrue: [self storeLong32: index - 1 ofObject: rcvr withValue: valToPut]. ^ nil]. fmt >= 16 "Note fmt >= 16 is an artificial flag for strings" ifTrue: [valToPut := self asciiOfCharacter: value. self successful ifFalse: [^ nil]] ifFalse: [valToPut := value]. (self isIntegerObject: valToPut) ifTrue: [valToPut := self integerValueOf: valToPut. ((valToPut >= 0) and: [valToPut <= 255]) ifFalse: [^ self primitiveFail]. ^ self storeByte: index - 1 ofObject: rcvr withValue: valToPut]]. self primitiveFail! ! !Interpreter methodsFor: '*System-Spoon-Virtual Machine Support' stamp: 'crl 5/22/2011 08:19'! commonVariableInternal: rcvr at: index cacheIndex: atIx "This code assumes the receiver has been identified at location atIx in the atCache." | stSize fmt fixedFields result | stSize := atCache at: atIx+AtCacheSize. ((self oop: index isGreaterThanOrEqualTo: 1) and: [self oop: index isLessThanOrEqualTo: stSize]) ifTrue: [fmt := atCache at: atIx+AtCacheFmt. "Use format 5 for marked method dictionaries." fmt <= 5 ifTrue: [fixedFields := atCache at: atIx+AtCacheFixedFields. ^ self fetchPointer: index + fixedFields - 1 ofObject: rcvr]. fmt < 8 ifTrue: "Bitmap" [result := self fetchLong32: index - 1 ofObject: rcvr. self externalizeIPandSP. result := self positive32BitIntegerFor: result. self internalizeIPandSP. ^ result]. fmt >= 16 "Note fmt >= 16 is an artificial flag for strings" ifTrue: "String" [^ self characterForAscii: (self fetchByte: index - 1 ofObject: rcvr)] ifFalse: "ByteArray" [^ self integerObjectOf: (self fetchByte: index - 1 ofObject: rcvr)]]. self primitiveFail! ! !Interpreter methodsFor: '*System-Spoon-Virtual Machine Support' stamp: 'crl 5/23/2011 12:40'! subscript: array with: index format: fmt "Note: This method assumes that the index is within bounds!!" "Use format 5 for marked method dictionaries." fmt <= 5 ifTrue: [ "pointer type objects" ^ self fetchPointer: index - 1 ofObject: array]. fmt < 8 ifTrue: [ "long-word type objects" ^ self positive32BitIntegerFor: (self fetchLong32: index - 1 ofObject: array) ] ifFalse: [ "byte-type objects" ^ self integerObjectOf: (self fetchByte: index - 1 ofObject: array) ].! ! !Interpreter methodsFor: '*System-Spoon-Virtual Machine Support' stamp: 'crl 5/25/2011 15:54'! subscript: array with: index storing: oopToStore format: fmt "Note: This method assumes that the index is within bounds!!" | valueToStore | "Use format 5 for marked method dictionaries." fmt <= 5 ifTrue: ["pointer type objects" self storePointer: index - 1 ofObject: array withValue: oopToStore] ifFalse: [fmt < 8 ifTrue: ["long-word type objects" valueToStore := self positive32BitValueOf: oopToStore. self successful ifTrue: [self storeLong32: index - 1 ofObject: array withValue: valueToStore]] ifFalse: ["byte-type objects" (self isIntegerObject: oopToStore) ifFalse: [primFailCode := 1]. valueToStore := self integerValueOf: oopToStore. (valueToStore >= 0 and: [valueToStore <= 255]) ifFalse: [primFailCode := 1]. (self successful) ifTrue: [self storeByte: index - 1 ofObject: array withValue: valueToStore]]]! ! !Interpreter methodsFor: '*System-Spoon-Virtual Machine Support' stamp: 'crl 5/23/2011 12:10'! markAllActiveMethods "Mark all methods associated with contexts." | methodContextClass oop blockContextClass | methodContextClass := self splObj: ClassMethodContext. blockContextClass := self splObj: ClassBlockContext. oop := self firstObject. [self oop: oop isLessThan: endOfMemory] whileTrue: [ | oopClass | oopClass := self fetchClassOf: oop. ((oopClass = methodContextClass) or: [oopClass = blockContextClass]) ifTrue: [ | meth flagByte pointer index | (oopClass = blockContextClass) ifTrue: [pointer := HomeIndex] ifFalse: [pointer := MethodIndex]. meth := ( self fetchPointer: pointer ofObject: oop). meth = nilObj ifFalse: [ flagByte := self byteAt: (meth + 4 + (self byteLengthOf: meth) - 1). (flagByte < 252) ifTrue: [index := meth + 4 + (self byteLengthOf: meth) - 3 - flagByte] ifFalse: [index := meth + 4 + (self byteLengthOf: meth) - 1 - 5]. self byteAt: index put: ((self byteAt: index) bitOr: 2r10000000)]]. oop := self objectAfter: oop]! ! !Interpreter methodsFor: '*System-Spoon-Virtual Machine Support' stamp: 'crl 5/25/2011 10:48'! snapshotWithoutStaleMethods "update state of active context" | activeProc dataSize rcvr setMacType | compilerInitialized ifTrue: [self compilerPreSnapshot] ifFalse: [self storeContextRegisters: activeContext]. "update state of active process" activeProc := self fetchPointer: ActiveProcessIndex ofObject: self schedulerPointer. self storePointer: SuspendedContextIndex ofObject: activeProc withValue: activeContext. "compact memory and compute the size of the memory actually in use" self markAllActiveMethods. self incrementalGC. "maximimize space for forwarding table" self fullGCDiscardingStaleMethods. self snapshotCleanUp. dataSize := freeBlock - self startOfMemory. "Assume all objects are below the start of the free block" self successful ifTrue: [rcvr := self popStack. "pop rcvr" self push: trueObj. self writeImageFile: dataSize. "set Mac file type and creator; this is a noop on other platforms" setMacType := self ioLoadFunction: 'setMacFileTypeAndCreator' From: 'FilePlugin'. setMacType = 0 ifFalse: [self cCode: '((sqInt (*)(char *, char *, char *))setMacType)(imageName, "STim", "FAST")']. self pop: 1]. "activeContext was unmarked in #snapshotCleanUp, mark it old " self beRootIfOld: activeContext. self successful ifTrue: [self push: falseObj] ifFalse: [self push: rcvr]. compilerInitialized ifTrue: [self compilerPostSnapshot]! ! !Interpreter methodsFor: '*System-Spoon-Virtual Machine Support' stamp: 'crl 5/23/2011 12:08'! lookupMethodInDictionary: dictionary "This method lookup tolerates integers as Dictionary keys to support execution of images in which Symbols have been compacted out" | length index mask wrapAround nextSelector methodArray | length := self fetchWordLengthOf: dictionary. mask := length - SelectorStart - 1. (self isIntegerObject: messageSelector) ifTrue: [index := (mask bitAnd: (self integerValueOf: messageSelector)) + SelectorStart] ifFalse: [index := (mask bitAnd: (self hashBitsOf: messageSelector)) + SelectorStart]. "It is assumed that there are some nils in this dictionary, and search will stop when one is encountered. However, if there are no nils, then wrapAround will be detected the second time the loop gets to the end of the table." wrapAround := false. [true] whileTrue: [nextSelector := self fetchPointer: index ofObject: dictionary. nextSelector = nilObj ifTrue: [^ false]. nextSelector = messageSelector ifTrue: [methodArray := self fetchPointer: MethodArrayIndex ofObject: dictionary. newMethod := self fetchPointer: index - SelectorStart ofObject: methodArray. "Check if newMethod is a CompiledMethod." (self isCompiledMethod: newMethod) ifTrue: [primitiveIndex := self primitiveIndexOf: newMethod. primitiveIndex > MaxPrimitiveIndex ifTrue: ["If primitiveIndex is out of range, set to zero before putting in cache. This is equiv to primFail, and avoids the need to check on every send." primitiveIndex := 0]] ifFalse: [ "could be an unrun method that got nilled out by the GC" newMethod = nilObj ifFalse: [ "indicate that this is no compiled method - use primitiveInvokeObjectAsMethod" primitiveIndex := 248]]. ^ true]. index := index + 1. index = length ifTrue: [wrapAround ifTrue: [^ false]. wrapAround := true. index := SelectorStart]]! ! !Interpreter methodsFor: '*System-Spoon-Virtual Machine Support' stamp: 'crl 5/22/2011 08:23'! fixedFieldsOf: oop format: fmt length: wordLength " NOTE: This code supports the backward-compatible extension to 8 bits of instSize. When we revise the image format, it should become... ^ (classFormat >> 2 bitAnd: 16rFF) - 1 " | class classFormat | ((fmt > 5) or: [fmt = 2]) ifTrue: [^ 0]. "indexable fields only" fmt < 2 ifTrue: [^ wordLength]. "fixed fields only (zero or more)" "fmt = 3, 4, or 5: mixture of fixed and indexable fields, so must look at class format word" class := self fetchClassOf: oop. classFormat := self formatOfClass: class. ^ (classFormat >> 11 bitAnd: 16rC0) + (classFormat >> 2 bitAnd: 16r3F) - 1 ! ! !Interpreter methodsFor: '*System-Spoon-Virtual Machine Support' stamp: 'crl 5/23/2011 12:11'! markAndTraceInterpreterOopsDiscardingStaleMethods "Mark and trace all oops in the interpreter's state." "Assume: All traced variables contain valid oops." | oop | self compilerMarkHook. self markAndTraceDiscardingStaleMethods: specialObjectsOop. "also covers nilObj, trueObj, falseObj, and compact classes" compilerInitialized ifTrue: [self markAndTraceDiscardingStaleMethods: receiver. self markAndTraceDiscardingStaleMethods: method] ifFalse: [self markAndTraceDiscardingStaleMethods: activeContext]. self markAndTraceDiscardingStaleMethods: messageSelector. self markAndTraceDiscardingStaleMethods: newMethod. self markAndTraceDiscardingStaleMethods: methodClass. self markAndTraceDiscardingStaleMethods: lkupClass. self markAndTraceDiscardingStaleMethods: receiverClass. 1 to: remapBufferCount do: [:i | oop := remapBuffer at: i. (self isIntegerObject: oop) ifFalse: [self markAndTraceDiscardingStaleMethods: oop]]. "Callback support - trace suspended callback list" 1 to: jmpDepth do:[:i| oop := suspendedCallbacks at: i. (self isIntegerObject: oop) ifFalse:[self markAndTraceDiscardingStaleMethods: oop]. oop := suspendedMethods at: i. (self isIntegerObject: oop) ifFalse:[self markAndTraceDiscardingStaleMethods: oop]. ]. ! ! !Interpreter methodsFor: '*System-Spoon-Virtual Machine Support' stamp: 'crl 5/26/2011 17:46'! primitiveSnapshotWithoutStaleMethods "update state of active context" | activeProc dataSize rcvr setMacType | compilerInitialized ifTrue: [self compilerPreSnapshot] ifFalse: [self storeContextRegisters: activeContext]. "update state of active process" activeProc := self fetchPointer: ActiveProcessIndex ofObject: self schedulerPointer. self storePointer: SuspendedContextIndex ofObject: activeProc withValue: activeContext. "compact memory and compute the size of the memory actually in use" self markAllActiveMethods. self incrementalGC. "maximimize space for forwarding table" self fullGCDiscardingStaleMethods. self snapshotCleanUp. dataSize := freeBlock - self startOfMemory. "Assume all objects are below the start of the free block" self successful ifTrue: [rcvr := self popStack. "pop rcvr" self push: trueObj. self writeImageFile: dataSize. "set Mac file type and creator; this is a noop on other platforms" setMacType := self ioLoadFunction: 'setMacFileTypeAndCreator' From: 'FilePlugin'. setMacType = 0 ifFalse: [self cCode: '((sqInt (*)(char *, char *, char *))setMacType)(imageName, "STim", "FAST")']. self pop: 1]. "activeContext was unmarked in #snapshotCleanUp, mark it old " self beRootIfOld: activeContext. self successful ifTrue: [self push: falseObj] ifFalse: [self push: rcvr]. compilerInitialized ifTrue: [self compilerPostSnapshot]! ! !InterpreterSimulator methodsFor: '*System-Spoon-Virtual Machine Support' stamp: 'crl 5/25/2011 10:54'! validate: oop | header type cc sz fmt nextChunk | header := self longAt: oop. type := header bitAnd: 3. type = 2 ifFalse: [type = (self rightType: header) ifFalse: [self halt]]. sz := (header bitAnd: self sizeMask) >> 2. (self isFreeObject: oop) ifTrue: [ nextChunk := oop + (self sizeOfFree: oop) ] ifFalse: [ nextChunk := oop + (self sizeBitsOf: oop) ]. nextChunk > endOfMemory ifTrue: [oop = endOfMemory ifFalse: [self halt]]. (self headerType: nextChunk) = 0 ifTrue: [ (self headerType: (nextChunk + (bytesPerWord * 2))) = 0 ifFalse: [self halt]]. (self headerType: nextChunk) = 1 ifTrue: [ (self headerType: (nextChunk + bytesPerWord)) = 1 ifFalse: [self halt]]. type = 2 ifTrue: ["free block" ^ self]. fmt := (header >> 8) bitAnd: 16rF. cc := (header >> 12) bitAnd: 31. cc > 16 ifTrue: [self halt]. "up to 32 are legal, but not used" type = 0 ifTrue: ["three-word header" ((self longAt: oop - bytesPerWord) bitAnd: 3) = type ifFalse: [self halt]. ((self longAt: oop-(bytesPerWord * 2)) bitAnd: 3) = type ifFalse: [self halt]. ((self longAt: oop - bytesPerWord) = type) ifTrue: [self halt]. "Class word is 0" sz = 0 ifFalse: [self halt]]. type = 1 ifTrue: ["two-word header" ((self longAt: oop - bytesPerWord) bitAnd: 3) = type ifFalse: [self halt]. cc > 0 ifTrue: [sz = 1 ifFalse: [self halt]]. sz = 0 ifTrue: [self halt]]. type = 3 ifTrue: ["one-word header" cc = 0 ifTrue: [self halt]]. "Use format 5 for marked method dictionaries. fmt = 5 ifTrue: [self halt]." fmt = 7 ifTrue: [self halt]. fmt >= 12 ifTrue: ["CompiledMethod -- check for integer header" (self isIntegerObject: (self longAt: oop + bytesPerWord)) ifFalse: [self halt]].! ! -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Resources/context/changes/processor/3 of 4 - active imprinting.cs: -------------------------------------------------------------------------------- 1 | 'From Squeak4.2 of 4 February 2011 [latest update: #10966] on 2 November 2013 at 3:36:42 pm'! !Interpreter methodsFor: '*System-Spoon-Virtual Machine Support' stamp: 'crl 5/23/2011 12:12'! okayInterpreterObjects | oopOrZero oop | self okayFields: nilObj. self okayFields: falseObj. self okayFields: trueObj. self okayFields: specialObjectsOop. self okayFields: activeContext. self okayFields: method. self okayFields: receiver. self okayFields: theHomeContext. self okayFields: messageSelector. self okayFields: newMethod. self okayFields: lkupClass. 0 to: MethodCacheEntries - 1 by: MethodCacheEntrySize do: [ :i | oopOrZero := methodCache at: i + MethodCacheSelector. oopOrZero = 0 ifFalse: [ self okayFields: (methodCache at: i + MethodCacheSelector). self okayFields: (methodCache at: i + MethodCacheClass). self okayFields: (methodCache at: i + MethodCacheMethod). ]. ]. 0 to: MethodCacheEntries - 1 by: MethodCacheEntrySize do: [ :i | oopOrZero := reportedMethodCache at: i + MethodCacheSelector. oopOrZero = 0 ifFalse: [ self okayFields: (reportedMethodCache at: i + MethodCacheSelector). self okayFields: (reportedMethodCache at: i + MethodCacheClass). ]. ]. 1 to: remapBufferCount do: [ :i | oop := remapBuffer at: i. (self isIntegerObject: oop) ifFalse: [ self okayFields: oop. ]. ]. self okayActiveProcessStack.! ! !Interpreter methodsFor: '*System-Spoon-Virtual Machine Support' stamp: 'crl 5/22/2011 08:33'! initializeInterpreter: bytesToShift "Initialize Interpreter state before starting execution of a new image." interpreterProxy := self sqGetInterpreterProxy. self dummyReferToProxy. self initializeObjectMemory: bytesToShift. self initCompilerHooks. activeContext := nilObj. theHomeContext := nilObj. method := nilObj. receiver := nilObj. messageSelector := nilObj. newMethod := nilObj. methodClass := nilObj. lkupClass := nilObj. receiverClass := nilObj. newNativeMethod := nilObj. self flushMethodCache. self loadInitialContext. self initialCleanup. interruptCheckCounter := 0. interruptCheckCounterFeedBackReset := 1000. interruptChecksEveryNms := 1. nextPollTick := 0. nextWakeupTick := 0. lastTick := 0. interruptKeycode := 2094. "cmd-. as used for Mac but no other OS" interruptPending := false. semaphoresUseBufferA := true. semaphoresToSignalCountA := 0. semaphoresToSignalCountB := 0. deferDisplayUpdates := false. pendingFinalizationSignals := 0. globalSessionID := 0. [globalSessionID = 0] whileTrue: [globalSessionID := self cCode: 'time(NULL) + ioMSecs()' inSmalltalk: [(Random new next * SmallInteger maxVal) asInteger]]. jmpDepth := 0. jmpMax := MaxJumpBuf. "xxxx: Must match the definition of jmpBuf and suspendedCallbacks" reportingSends := false. lastMethodWasCached := false! ! !Interpreter methodsFor: '*System-Spoon-Virtual Machine Support' stamp: 'crl 10/28/2006 00:32'! commonSend "Send a message, starting lookup with the receiver's class." "Assume: messageSelector and argumentCount have been set, and that the receiver and arguments have been pushed onto the stack," "Note: This method is inlined into the interpreter dispatch loop." self sharedCodeNamed: 'commonSend' inCase: 131. self internalFindNewMethod. self internalExecuteNewMethod. self reportLastSend. self fetchNextBytecode! ! !Interpreter methodsFor: '*System-Spoon-Virtual Machine Support' stamp: 'crl 5/22/2011 08:35'! internalFindNewMethod "Find the compiled method to be run when the current messageSelector is sent to the class 'lkupClass', setting the values of 'newMethod' and 'primitiveIndex'." lastMethodWasCached := self lookupInMethodCacheSel: messageSelector class: lkupClass. lastMethodWasCached ifFalse: [ "entry was not found in the cache; look it up the hard way" self externalizeIPandSP. self lookupMethodInClass: lkupClass. self internalizeIPandSP. self addNewMethodToCache]. ! ! !Interpreter methodsFor: '*System-Spoon-Virtual Machine Support' stamp: 'crl 5/23/2011 12:39'! reportLastSend reportingSends ifTrue: [ ((messageSelector = (self splObj: SelectorUnreportedWait)) or: [(messageSelector = (self splObj: SelectorUnreportedSignal))]) ifFalse: [ (messageSelector = (self splObj: SelectorStopReportingSends)) ifTrue: [reportingSends := false] ifFalse: [ (self lookupInReportedMethodCacheSel: messageSelector class: lkupClass) ifFalse: [ "The method just run may not have been reported, and the active process is being imprinted." | behaviorIDAddress classAddress isMeta metaByte metaclassAddress methodIDAddress methodIDIndex selectorSize | self addNewMethodToReportedCache. lastMethodWasCached ifTrue: [classAddress := lkupClass] ifFalse: [classAddress := methodClass]. isMeta := ((self fetchClassOf: classAddress) = (self fetchClassOf: (self fetchClassOf: (self fetchClassOf: nilObj)))). "syntactic Slang concession" methodIDAddress := self splObj: ReportedMethodID. isMeta ifTrue: [metaclassAddress := classAddress] ifFalse: [metaclassAddress := self fetchClassOf: classAddress]. behaviorIDAddress := ( self fetchPointer: 6 ofObject: metaclassAddress). "Write the behavior ID bytes." methodIDIndex := 0. 0 to: 15 do: [:index | self storeByte: methodIDIndex ofObject: methodIDAddress withValue: ( self fetchByte: index ofObject: behaviorIDAddress). methodIDIndex := methodIDIndex + 1]. "Write the message selector." selectorSize := self stSizeOf: messageSelector. self storeByte: methodIDIndex ofObject: methodIDAddress withValue: selectorSize. methodIDIndex := methodIDIndex + 1. 0 to: (selectorSize - 1) do: [:index | self storeByte: methodIDIndex ofObject: methodIDAddress withValue: ( self fetchByte: index ofObject: messageSelector). methodIDIndex := methodIDIndex + 1]. "Write the meta bit." "syntactic Slang concession" isMeta ifTrue: [metaByte := 2r10000000] ifFalse: [metaByte := 0]. self storeByte: methodIDIndex ofObject: methodIDAddress withValue: metaByte. "Reset the rest of the ID so that it can be used in cache lookup in the object memory." methodIDIndex := methodIDIndex + 1. methodIDIndex to: 127 do: [:index | self storeByte: index ofObject: methodIDAddress withValue: 0]. self externalizeIPandSP; synchronousSignal: (self splObj: MethodToReport); internalizeIPandSP]]]] ifFalse: [ (messageSelector = (self splObj: SelectorStartReportingSends)) ifTrue: [reportingSends := true]]! ! !Interpreter methodsFor: '*System-Spoon-Virtual Machine Support' stamp: 'crl 8/21/2004 01:27'! addNewMethodToReportedCache "Add the given entry to the reported-method cache. The policy is as follows: Look for an empty entry anywhere in the reprobe chain. If found, install the new entry there. If not found, then install the new entry at the first probe position and delete the entries in the rest of the reprobe chain. This has two useful purposes: If there is active contention over the first slot, the second or third will likely be free for reentry after ejection. Also, flushing is good when reprobe chains are getting full." | probe hash | self inline: false. self compilerTranslateMethodHook. "newMethod x lkupClass -> newNativeMethod (may cause GC !!)" hash := messageSelector bitXor: lkupClass. "drop low-order zeros from addresses" 0 to: CacheProbeMax-1 do: [:p | probe := (hash >> p) bitAnd: MethodCacheMask. (reportedMethodCache at: probe + MethodCacheSelector) = 0 ifTrue: ["Found an empty entry -- use it" reportedMethodCache at: probe + MethodCacheSelector put: messageSelector. reportedMethodCache at: probe + MethodCacheClass put: lkupClass. ^ nil]]. "OK, we failed to find an entry -- install at the first slot..." probe := hash bitAnd: MethodCacheMask. "first probe" reportedMethodCache at: probe + MethodCacheSelector put: messageSelector. reportedMethodCache at: probe + MethodCacheClass put: lkupClass. "...and zap the following entries" 1 to: CacheProbeMax-1 do: [:p | probe := (hash >> p) bitAnd: MethodCacheMask. reportedMethodCache at: probe + MethodCacheSelector put: 0]. ! ! !Interpreter methodsFor: '*System-Spoon-Virtual Machine Support' stamp: 'crl 5/22/2011 08:24'! flushMethodCache "Flush the method cache. The method cache is flushed on every programming change and garbage collect." 1 to: MethodCacheSize do: [ :i | methodCache at: i put: 0 ]. 1 to: MethodCacheSize do: [ :i | reportedMethodCache at: i put: 0 ]. self flushAtCache! ! !Interpreter methodsFor: '*System-Spoon-Virtual Machine Support' stamp: 'crl 5/22/2011 08:26'! flushMethodCacheFrom: memStart to: memEnd "Flush entries in the method cache only if the oop address is within the given memory range. This reduces overagressive cache clearing. Note the AtCache is fully flushed, 70% of the time cache entries live in newspace, new objects die young" | probe | probe := 0. 1 to: MethodCacheEntries do: [:i | (methodCache at: probe + MethodCacheSelector) = 0 ifFalse: [(((((self oop: (methodCache at: probe + MethodCacheSelector) isGreaterThanOrEqualTo: memStart) and: [self oop: (methodCache at: probe + MethodCacheSelector) isLessThan: memEnd]) or: [(self oop: (methodCache at: probe + MethodCacheClass) isGreaterThanOrEqualTo: memStart) and: [self oop: (methodCache at: probe + MethodCacheClass) isLessThan: memEnd]]) or: [(self oop: (methodCache at: probe + MethodCacheMethod) isGreaterThanOrEqualTo: memStart) and: [self oop: (methodCache at: probe + MethodCacheMethod) isLessThan: memEnd]]) or: [(self oop: (methodCache at: probe + MethodCacheNative) isGreaterThanOrEqualTo: memStart) and: [self oop: (methodCache at: probe + MethodCacheNative) isLessThan: memEnd]]) ifTrue: [methodCache at: probe + MethodCacheSelector put: 0]]. probe := probe + MethodCacheEntrySize]. probe := 0. 1 to: MethodCacheEntries do: [:i | (reportedMethodCache at: probe + MethodCacheSelector) = 0 ifFalse: [(((((self oop: (reportedMethodCache at: probe + MethodCacheSelector) isGreaterThanOrEqualTo: memStart) and: [self oop: (reportedMethodCache at: probe + MethodCacheSelector) isLessThan: memEnd]) or: [(self oop: (reportedMethodCache at: probe + MethodCacheClass) isGreaterThanOrEqualTo: memStart) and: [self oop: (reportedMethodCache at: probe + MethodCacheClass) isLessThan: memEnd]]) or: [(self oop: (reportedMethodCache at: probe + MethodCacheMethod) isGreaterThanOrEqualTo: memStart) and: [self oop: (reportedMethodCache at: probe + MethodCacheMethod) isLessThan: memEnd]]) or: [(self oop: (reportedMethodCache at: probe + MethodCacheNative) isGreaterThanOrEqualTo: memStart) and: [self oop: (reportedMethodCache at: probe + MethodCacheNative) isLessThan: memEnd]]) ifTrue: [reportedMethodCache at: probe + MethodCacheSelector put: 0]]. probe := probe + MethodCacheEntrySize]. 1 to: AtCacheTotalSize do: [:i | atCache at: i put: 0]! ! !Interpreter methodsFor: '*System-Spoon-Virtual Machine Support' stamp: 'crl 5/22/2011 08:38'! lookupInMethodCacheSel: selector class: class "This method implements a simple method lookup cache. If an entry for the given selector and class is found in the cache, set the values of 'newMethod' and 'primitiveIndex' and return true. Otherwise, return false." "About the re-probe scheme: The hash is the low bits of the XOR of two large addresses, minus their useless lowest two bits. If a probe doesn't get a hit, the hash is shifted right one bit to compute the next probe, introducing a new randomish bit. The cache is probed CacheProbeMax times before giving up." "WARNING: Since the hash computation is based on the object addresses of the class and selector, we must rehash or flush when compacting storage. We've chosen to flush, since that also saves the trouble of updating the addresses of the objects in the cache." | hash probe | (class = (self splObj: ClassProxy)) ifTrue: [ (selector ~= (self splObj: SelectorForward)) ifTrue: [^false]]. hash := selector bitXor: class. "shift drops two low-order zeros from addresses" probe := hash bitAnd: MethodCacheMask. "first probe" (((methodCache at: probe + MethodCacheSelector) = selector) and: [(methodCache at: probe + MethodCacheClass) = class]) ifTrue: [newMethod := methodCache at: probe + MethodCacheMethod. primitiveIndex := methodCache at: probe + MethodCachePrim. newNativeMethod := methodCache at: probe + MethodCacheNative. primitiveFunctionPointer := self cCoerce: (methodCache at: probe + MethodCachePrimFunction) to: 'void *'. ^ true "found entry in cache; done"]. probe := (hash >> 1) bitAnd: MethodCacheMask. "second probe" (((methodCache at: probe + MethodCacheSelector) = selector) and: [(methodCache at: probe + MethodCacheClass) = class]) ifTrue: [newMethod := methodCache at: probe + MethodCacheMethod. primitiveIndex := methodCache at: probe + MethodCachePrim. newNativeMethod := methodCache at: probe + MethodCacheNative. primitiveFunctionPointer := self cCoerce: (methodCache at: probe + MethodCachePrimFunction) to: 'void *'. ^ true "found entry in cache; done"]. probe := (hash >> 2) bitAnd: MethodCacheMask. (((methodCache at: probe + MethodCacheSelector) = selector) and: [(methodCache at: probe + MethodCacheClass) = class]) ifTrue: [newMethod := methodCache at: probe + MethodCacheMethod. primitiveIndex := methodCache at: probe + MethodCachePrim. newNativeMethod := methodCache at: probe + MethodCacheNative. primitiveFunctionPointer := self cCoerce: (methodCache at: probe + MethodCachePrimFunction) to: 'void *'. ^ true "found entry in cache; done"]. ^ false ! ! !Interpreter methodsFor: '*System-Spoon-Virtual Machine Support' stamp: 'crl 5/22/2011 08:41'! lookupInReportedMethodCacheSel: selector class: class "This method implements a simple method lookup cache. If an entry for the given selector and class is found in the cache, set the values of 'newMethod' and 'primitiveIndex' and return true. Otherwise, return false." "About the re-probe scheme: The hash is the low bits of the XOR of two large addresses, minus their useless lowest two bits. If a probe doesn't get a hit, the hash is shifted right one bit to compute the next probe, introducing a new randomish bit. The cache is probed CacheProbeMax times before giving up." "WARNING: Since the hash computation is based on the object addresses of the class and selector, we must rehash or flush when compacting storage. We've chosen to flush, since that also saves the trouble of updating the addresses of the objects in the cache." | hash probe | hash := selector bitXor: class. "shift drops two low-order zeros from addresses" probe := hash bitAnd: MethodCacheMask. "first probe" (((reportedMethodCache at: probe + MethodCacheSelector) = selector) and: [(reportedMethodCache at: probe + MethodCacheClass) = class]) ifTrue: [newMethod := reportedMethodCache at: probe + MethodCacheMethod. primitiveIndex := reportedMethodCache at: probe + MethodCachePrim. newNativeMethod := reportedMethodCache at: probe + MethodCacheNative. primitiveFunctionPointer := self cCoerce: (reportedMethodCache at: probe + MethodCachePrimFunction) to: 'void *'. ^ true "found entry in cache; done"]. probe := (hash >> 1) bitAnd: MethodCacheMask. "second probe" (((reportedMethodCache at: probe + MethodCacheSelector) = selector) and: [(reportedMethodCache at: probe + MethodCacheClass) = class]) ifTrue: [newMethod := reportedMethodCache at: probe + MethodCacheMethod. primitiveIndex := reportedMethodCache at: probe + MethodCachePrim. newNativeMethod := reportedMethodCache at: probe + MethodCacheNative. primitiveFunctionPointer := self cCoerce: (reportedMethodCache at: probe + MethodCachePrimFunction) to: 'void *'. ^ true "found entry in cache; done"]. probe := (hash >> 2) bitAnd: MethodCacheMask. (((reportedMethodCache at: probe + MethodCacheSelector) = selector) and: [(reportedMethodCache at: probe + MethodCacheClass) = class]) ifTrue: [newMethod := reportedMethodCache at: probe + MethodCacheMethod. primitiveIndex := reportedMethodCache at: probe + MethodCachePrim. newNativeMethod := reportedMethodCache at: probe + MethodCacheNative. primitiveFunctionPointer := self cCoerce: (reportedMethodCache at: probe + MethodCachePrimFunction) to: 'void *'. ^ true "found entry in cache; done"]. ^ false ! ! !Interpreter methodsFor: '*System-Spoon-Virtual Machine Support' stamp: 'crl 5/23/2011 12:43'! transferTo: aProc "Record a process to be awoken on the next interpreter cycle. ikp 11/24/1999 06:07 -- added hook for external runtime compiler " | sched oldProc newProc | newProc := aProc. sched := self schedulerPointer. oldProc := self fetchPointer: ActiveProcessIndex ofObject: sched. self storePointer: ActiveProcessIndex ofObject: sched withValue: newProc. compilerInitialized ifTrue: [self compilerProcessChange: oldProc to: newProc] ifFalse: [self storePointer: SuspendedContextIndex ofObject: oldProc withValue: activeContext. self newActiveContext: (self fetchPointer: SuspendedContextIndex ofObject: newProc). self storePointer: SuspendedContextIndex ofObject: newProc withValue: nilObj. ( ( self fetchPointer: BeingImprintedIndex ofObject: ( self fetchPointer: ActiveProcessIndex ofObject: self schedulerPointer) ) == trueObj ) ifTrue: [reportingSends := true] ifFalse: [reportingSends := false]]. reclaimableContextCount := 0! ! !InterpreterSimulator methodsFor: '*System-Spoon-Virtual Machine Support' stamp: 'crl 5/23/2011 16:27'! initialize "Initialize the InterpreterSimulator when running the interpreter inside Smalltalk. The primary responsibility of this method is to allocate Smalltalk Arrays for variables that will be declared as statically-allocated global arrays in the translated code." "initialize class variables" ObjectMemory initializeConstants. Interpreter initialize. "Note: we must initialize ConstMinusOne differently for simulation, due to the fact that the simulator works only with +ve 32-bit values" ConstMinusOne := self integerObjectOf: -1. methodCache := Array new: MethodCacheSize. reportedMethodCache := Array new: MethodCacheSize. atCache := Array new: AtCacheTotalSize. self flushMethodCache. rootTable := Array new: RootTableSize. weakRoots := Array new: RootTableSize + RemapBufferSize + 100. remapBuffer := Array new: RemapBufferSize. semaphoresUseBufferA := true. semaphoresToSignalA := Array new: SemaphoresToSignalSize. semaphoresToSignalB := Array new: SemaphoresToSignalSize. externalPrimitiveTable := CArrayAccessor on: (Array new: MaxExternalPrimitiveTableSize). primitiveTable := self class primitiveTable. pluginList := #(). mappedPluginEntries := #(). "initialize InterpreterSimulator variables used for debugging" byteCount := 0. sendCount := 0. quitBlock := [^ self]. traceOn := true. myBitBlt := BitBltSimulator new setInterpreter: self. filesOpen := OrderedCollection new. headerTypeBytes := CArrayAccessor on: (Array with: self bytesPerWord * 2 with: self bytesPerWord with: 0 with: 0). transcript := Transcript. displayForm := 'Display has not yet been installed' asDisplayText form. ! ! !ObjectMemory class methodsFor: '*System-Spoon-Virtual Machine Support' stamp: 'crl 7/18/2011 22:37'! initializeSpecialObjectIndices "Initialize indices into specialObjects array." NilObject := 0. FalseObject := 1. TrueObject := 2. SchedulerAssociation := 3. ClassBitmap := 4. ClassInteger := 5. ClassString := 6. ClassArray := 7. "SmalltalkDictionary := 8." "Do not delete!!" ClassFloat := 9. ClassMethodContext := 10. ClassBlockContext := 11. ClassPoint := 12. ClassLargePositiveInteger := 13. TheDisplay := 14. ClassMessage := 15. ClassCompiledMethod := 16. TheLowSpaceSemaphore := 17. ClassSemaphore := 18. ClassCharacter := 19. SelectorDoesNotUnderstand := 20. SelectorCannotReturn := 21. ProcessSignalingLowSpace := 22. "was TheInputSemaphore" SpecialSelectors := 23. CharacterTable := 24. SelectorMustBeBoolean := 25. ClassByteArray := 26. ClassProcess := 27. CompactClasses := 28. TheTimerSemaphore := 29. TheInterruptSemaphore := 30. SelectorCannotInterpret := 34. "Was MethodContextProto := 35." ClassBlockClosure := 36. "Was BlockContextProto := 37." ExternalObjectsArray := 38. ClassPseudoContext := 39. ClassTranslatedMethod := 40. TheFinalizationSemaphore := 41. ClassLargeNegativeInteger := 42. ClassExternalAddress := 43. ClassExternalStructure := 44. ClassExternalData := 45. ClassExternalFunction := 46. ClassExternalLibrary := 47. SelectorAboutToReturn := 48. SelectorRunWithIn := 49. SelectorAttemptToAssign := 50. "PrimErrTableIndex := 51. in Interpreter class>>initializePrimitiveErrorCodes" ClassAlien := 52. InvokeCallbackSelector := 53. ClassUnsafeAlien := 54. ClassWeakFinalizer := 55. ClassProxy := 107. SelectorForward := 108. SelectorInitProxy := 109. SelectorProxyHash := 110. SelectorCounterpart := 111. SelectorIsNil := 112. SelectorNextInstance := 113. SelectorStoreOnProxyStream := 114. SelectorStartReportingSends := 115. ReportedMethodID := 116. MethodToReport := 117. SelectorStopReportingSends := 118. SelectorUnreportedWait := 119. SelectorUnreportedSignal := 120! ! !Interpreter class methodsFor: '*System-Spoon-Virtual Machine Support' stamp: 'crl 5/23/2011 12:44'! declareCVarsIn: aCCodeGenerator aCCodeGenerator addHeaderFile:''. aCCodeGenerator var: #interpreterProxy type: #'struct VirtualMachine*'. aCCodeGenerator var: #primitiveTable declareC: 'void *primitiveTable[', (MaxPrimitiveIndex +2) printString, '] = ', self primitiveTableString. aCCodeGenerator var: #primitiveFunctionPointer declareC: 'void *primitiveFunctionPointer' . "xxxx FIX THIS STUPIDITY xxxx - ikp. What he means is use a better type than void *, apparently - tpr" aCCodeGenerator var: #methodCache declareC: 'long methodCache[', (MethodCacheSize + 1) printString, ']'. aCCodeGenerator var: #reportedMethodCache declareC: 'long reportedMethodCache[', (MethodCacheSize + 1) printString, ']'. aCCodeGenerator var: #atCache declareC: 'sqInt atCache[', (AtCacheTotalSize + 1) printString, ']'. aCCodeGenerator var: #statGCTime type: #'sqLong'. aCCodeGenerator var: #statFullGCMSecs type: #'sqLong'. aCCodeGenerator var: #statIGCDeltaTime type: #'sqLong'. aCCodeGenerator var: #statIncrGCMSecs type: #'sqLong'. aCCodeGenerator var: #localIP type: #'char*'. aCCodeGenerator var: #localSP type: #'char*'. aCCodeGenerator var: #showSurfaceFn type: #'void*'. aCCodeGenerator var: 'semaphoresToSignalA' declareC: 'sqInt semaphoresToSignalA[', (SemaphoresToSignalSize + 1) printString, ']'. aCCodeGenerator var: 'semaphoresToSignalB' declareC: 'sqInt semaphoresToSignalB[', (SemaphoresToSignalSize + 1) printString, ']'. aCCodeGenerator var: #compilerHooks declareC: 'sqInt (*compilerHooks[', (CompilerHooksSize + 1) printString, '])()'. aCCodeGenerator var: #interpreterVersion declareC: 'const char *interpreterVersion = "', SmalltalkImage current datedVersion, ' [', SmalltalkImage current lastUpdateString,']"'. aCCodeGenerator var: #obsoleteIndexedPrimitiveTable declareC: 'char* obsoleteIndexedPrimitiveTable[][3] = ', self obsoleteIndexedPrimitiveTableString. aCCodeGenerator var: #obsoleteNamedPrimitiveTable declareC: 'const char* obsoleteNamedPrimitiveTable[][3] = ', self obsoleteNamedPrimitiveTableString. aCCodeGenerator var: #externalPrimitiveTable declareC: 'void *externalPrimitiveTable[', (MaxExternalPrimitiveTableSize + 1) printString, ']'. self declareCAsOop: { #instructionPointer . #method . #newMethod . #activeContext . #theHomeContext . #stackPointer } in: aCCodeGenerator. aCCodeGenerator var: #jmpBuf declareC: 'jmp_buf jmpBuf[', (MaxJumpBuf + 1) printString, ']'. aCCodeGenerator var: #suspendedCallbacks declareC: 'sqInt suspendedCallbacks[', (MaxJumpBuf + 1) printString, ']'. aCCodeGenerator var: #suspendedMethods declareC: 'sqInt suspendedMethods[', (MaxJumpBuf + 1) printString, ']'. "Reinitialized at interpreter entry by #initializeImageFormatVersion" aCCodeGenerator var: #imageFormatVersionNumber declareC: 'sqInt imageFormatVersionNumber = 0'. "Declared here to prevent inclusion in foo struct by CCodeGeneratorGlobalStructure" aCCodeGenerator var: #imageFormatInitialVersion declareC: 'sqInt imageFormatInitialVersion = 0' ! ! !Interpreter class methodsFor: '*System-Spoon-Virtual Machine Support' stamp: 'crl 5/23/2011 12:48'! initializeSchedulerIndices "Class ProcessorScheduler" ProcessListsIndex := 0. ActiveProcessIndex := 1. "Class LinkedList" FirstLinkIndex := 0. LastLinkIndex := 1. "Class Semaphore" ExcessSignalsIndex := 2. "Class Link" NextLinkIndex := 0. "Class Process" SuspendedContextIndex := 1. PriorityIndex := 2. MyListIndex := 3. BeingImprintedIndex := 6! ! -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Resources/context/changes/processor/4 of 4 - collateral improvements.cs: -------------------------------------------------------------------------------- 1 | 'From Squeak4.2 of 4 February 2011 [latest update: #10966] on 2 November 2013 at 3:36:52 pm'! LargeIntegersPlugin subclass: #LargeIntegersSimulator instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' category: 'System-Spoon-Virtual Machine Support'! !InterpreterPlugin methodsFor: '*System-Spoon-Virtual Machine Support' stamp: 'crl 5/23/2011 12:49'! msg: s self cCode: 'fprintf(stderr, "\n%s: %s", moduleName, s)' inSmalltalk: [Transcript "cr; show: self class moduleName , ': ' , s" nextPut: $.; endEntry]! ! !BitBltSimulation methodsFor: '*System-Spoon-Virtual Machine Support' stamp: 'crl 3/2/2012 13:54'! halftoneAt: idx "Return a value from the halftone pattern." ^interpreterProxy long32At: halftoneBase + (idx \\ halftoneHeight * 4)! ! !BitBltSimulation methodsFor: '*System-Spoon-Virtual Machine Support' stamp: 'crl 3/2/2012 22:48'! primitiveDisplayString | kernDelta xTable glyphMap stopIndex startIndex sourceString bbObj maxGlyph ascii glyphIndex sourcePtr left quickBlt | interpreterProxy methodArgumentCount = 6 ifFalse:[^interpreterProxy primitiveFail]. kernDelta := interpreterProxy stackIntegerValue: 0. xTable := interpreterProxy stackObjectValue: 1. glyphMap := interpreterProxy stackObjectValue: 2. ((interpreterProxy fetchClassOf: xTable) = interpreterProxy classArray and:[ (interpreterProxy fetchClassOf: glyphMap) = interpreterProxy classArray]) ifFalse:[^interpreterProxy primitiveFail]. (interpreterProxy slotSizeOf: glyphMap) = 256 ifFalse:[^interpreterProxy primitiveFail]. interpreterProxy failed ifTrue:[^nil]. maxGlyph := (interpreterProxy slotSizeOf: xTable) - 2. stopIndex := interpreterProxy stackIntegerValue: 3. startIndex := interpreterProxy stackIntegerValue: 4. sourceString := interpreterProxy stackObjectValue: 5. (interpreterProxy isBytes: sourceString) ifFalse:[^interpreterProxy primitiveFail]. (startIndex > 0 and:[stopIndex > 0 and:[ stopIndex <= (interpreterProxy byteSizeOf: sourceString)]]) ifFalse:[^interpreterProxy primitiveFail]. bbObj := interpreterProxy stackObjectValue: 6. (self loadBitBltFrom: bbObj) ifFalse:[^interpreterProxy primitiveFail]. (combinationRule = 30 or:[combinationRule = 31]) "needs extra source alpha" ifTrue:[^interpreterProxy primitiveFail]. "See if we can go directly into copyLoopPixMap (usually we can)" quickBlt := destBits ~= 0 "no OS surfaces please" and:[sourceBits ~= 0 "and again" and:[noSource = false "needs a source" and:[sourceForm ~= destForm "no blits onto self" and:[(cmFlags ~= 0 or:[sourceMSB ~= destMSB or:[sourceDepth ~= destDepth]]) "no point using slower version" ]]]]. left := destX. sourcePtr := interpreterProxy firstIndexableField: sourceString. startIndex to: stopIndex do:[:charIndex| ascii := interpreterProxy byteAtPointer: sourcePtr + charIndex - 1. glyphIndex := interpreterProxy fetchInteger: ascii ofObject: glyphMap. (glyphIndex < 0 or:[glyphIndex > maxGlyph]) ifTrue:[^interpreterProxy primitiveFail]. sourceX := interpreterProxy fetchInteger: glyphIndex ofObject: xTable. width := (interpreterProxy fetchInteger: glyphIndex+1 ofObject: xTable) - sourceX. interpreterProxy failed ifTrue:[^nil]. self clipRange. "Must clip here" (bbW > 0 and:[bbH > 0]) ifTrue: [ quickBlt ifTrue:[ self destMaskAndPointerInit. self copyLoopPixMap. "both, hDir and vDir are known to be > 0" affectedL := dx. affectedR := dx + bbW. affectedT := dy. affectedB := dy + bbH. ] ifFalse:[self copyBits]]. interpreterProxy failed ifTrue:[^nil]. destX := destX + width + kernDelta. ]. affectedL := left. self showDisplayBits. interpreterProxy pop: 6. "pop args, return rcvr"! ! !BitBltSimulator methodsFor: '*System-Spoon-Virtual Machine Support' stamp: 'crl 2/26/2012 21:42'! dstLongAt: dstIndex interpreterProxy isInterpreterProxy ifTrue:[^dstIndex long32At: 0]. ((dstIndex anyMask: 3) or:[dstIndex + 4 < destBits or:[ dstIndex > (destBits + (destPitch * destHeight))]]) ifTrue:[self error:'Out of bounds']. ^interpreterProxy long32At: dstIndex! ! !BitBltSimulator methodsFor: '*System-Spoon-Virtual Machine Support' stamp: 'crl 2/26/2012 21:43'! dstLongAt: dstIndex put: value interpreterProxy isInterpreterProxy ifTrue:[^dstIndex long32At: 0 put: value]. ((dstIndex anyMask: 3) or:[dstIndex < destBits or:[ dstIndex >= (destBits + (destPitch * destHeight))]]) ifTrue:[self error:'Out of bounds']. ^interpreterProxy long32At: dstIndex put: value! ! !BitBltSimulator methodsFor: '*System-Spoon-Virtual Machine Support' stamp: 'crl 2/26/2012 21:42'! srcLongAt: srcIndex interpreterProxy isInterpreterProxy ifTrue:[^srcIndex long32At: 0]. ((srcIndex anyMask: 3) or:[srcIndex + 4 < sourceBits or:[ srcIndex > (sourceBits + (sourcePitch * sourceHeight))]]) ifTrue:[self error:'Out of bounds']. ^interpreterProxy long32At: srcIndex! ! !BitBltSimulator methodsFor: '*System-Spoon-Virtual Machine Support' stamp: 'crl 3/2/2012 22:48'! tableLookup: table at: index ^ interpreterProxy long32At: (table + (index * 4))! ! !LargeIntegersPlugin class methodsFor: '*System-Spoon-Virtual Machine Support' stamp: 'crl 5/26/2011 14:35'! simulatorClass ^LargeIntegersSimulator! ! !LargeIntegersSimulator methodsFor: 'oop functions' stamp: 'crl 3/2/2012 12:57'! digitDivLarge: firstInteger with: secondInteger negative: neg "Does not normalize." "Division by zero has to be checked in caller." | firstLen secondLen resultClass l d div rem quo result | firstLen _ self byteSizeOfBytes: firstInteger. secondLen _ self byteSizeOfBytes: secondInteger. neg ifTrue: [resultClass _ interpreterProxy classLargeNegativeInteger] ifFalse: [resultClass _ interpreterProxy classLargePositiveInteger]. l _ firstLen - secondLen + 1. l <= 0 ifTrue: [self remapOop: firstInteger in: [result _ interpreterProxy instantiateClass: interpreterProxy classArray indexableSize: 2]. interpreterProxy stObject: result at: 1 put: (0 asOop: SmallInteger); stObject: result at: 2 put: firstInteger. ^ result]. "set rem and div to copies of firstInteger and secondInteger, respectively. However, to facilitate use of Knuth's algorithm, multiply rem and div by 2 (that is, shift) until the high byte of div is >=128" d _ 8 - (self cHighBit: (self unsafeByteOf: secondInteger at: secondLen)). self remapOop: firstInteger in: [div _ self bytes: secondInteger Lshift: d. div _ self bytesOrInt: div growTo: (self digitLength: div) + 1]. self remapOop: div in: [rem _ self bytes: firstInteger Lshift: d. (self digitLength: rem) = firstLen ifTrue: [rem _ self bytesOrInt: rem growTo: firstLen + 1]]. self remapOop: #(div rem ) in: [quo _ interpreterProxy instantiateClass: resultClass indexableSize: l]. self cCoreDigitDivDiv: (interpreterProxy firstIndexableField: div) len: (self digitLength: div) rem: (interpreterProxy firstIndexableField: rem) len: (self digitLength: rem) quo: (interpreterProxy firstIndexableField: quo) len: (self digitLength: quo). self remapOop: #(quo ) in: [rem _ self bytes: rem Rshift: d bytes: 0 lookfirst: (self digitLength: div) - 1]. "^ Array with: quo with: rem" self remapOop: #(quo rem ) in: [result _ interpreterProxy instantiateClass: interpreterProxy classArray indexableSize: 2]. interpreterProxy stObject: result at: 1 put: quo; stObject: result at: 2 put: rem. ^ result! ! !LargeIntegersSimulator methodsFor: 'Integer primitives' stamp: 'crl 2/12/2006 01:17'! primDigitAdd | sum | sum _ self primDigitAdd: (interpreterProxy stackValue: 0). interpreterProxy pop: 2; push: sum! ! !LargeIntegersSimulator methodsFor: 'Integer primitives' stamp: 'crl 2/12/2006 01:17'! primDigitBitAnd | result | result _ self primDigitBitAnd: (interpreterProxy stackValue: 0). interpreterProxy pop: 2; push: result! ! !LargeIntegersSimulator methodsFor: 'Integer primitives' stamp: 'crl 2/12/2006 01:17'! primDigitBitShiftMagnitude | result | result _ self primDigitBitShiftMagnitude: (interpreterProxy stackIntegerValue: 0). interpreterProxy pop: 2; push: result! ! !LargeIntegersSimulator methodsFor: 'Integer primitives' stamp: 'crl 2/12/2006 01:18'! primDigitCompare | result | result _ self primDigitCompare: (interpreterProxy stackValue: 0). interpreterProxy pop: 2; push: result! ! !LargeIntegersSimulator methodsFor: 'Integer primitives' stamp: 'crl 2/12/2006 01:18'! primDigitDivNegative | result | result _ ( self primDigitDiv: (interpreterProxy stackValue: 1) negative: (interpreterProxy stackValue: 0)). interpreterProxy pop: 3; push: result! ! !LargeIntegersSimulator methodsFor: 'Integer primitives' stamp: 'crl 2/12/2006 11:58'! primDigitMultiplyNegative | result | result _ ( self primDigitMultiply: (interpreterProxy stackValue: 1) negative: (interpreterProxy stackValue: 0)). interpreterProxy pop: 3; push: result! ! !LargeIntegersSimulator methodsFor: 'Integer primitives' stamp: 'crl 2/12/2006 01:18'! primDigitSubtract | difference | difference _ self primDigitSubtract: (interpreterProxy stackValue: 0). interpreterProxy pop: 2; push: difference! ! !LargeIntegersSimulator methodsFor: 'Integer primitives' stamp: 'crl 2/12/2006 11:58'! primNormalizeNegative | result | result _ super primNormalizeNegative. interpreterProxy pop: 1; push: result! ! !LargeIntegersSimulator methodsFor: 'Integer primitives' stamp: 'crl 2/12/2006 11:58'! primNormalizePositive | result | result _ super primNormalizePositive. interpreterProxy pop: 1; push: result! ! !ObjectMemory methodsFor: '*System-Spoon-Virtual Machine Support' stamp: 'crl 5/25/2011 15:47'! classArray ^self splObj: ClassArray! ! !Interpreter methodsFor: '*System-Spoon-Virtual Machine Support' stamp: 'crl 5/26/2011 18:03'! printNameOfClass: classOop count: cnt "Details: The count argument is used to avoid a possible infinite recursion if classOop is a corrupted object." cnt <= 0 ifTrue: [ ^ self print: 'bad class' ]. (self sizeBitsOf: classOop) = (7 * self bytesPerWord) "(Metaclass instSize+1 * 4)" ifTrue: [self printNameOfClass: (self fetchPointer: 5 "thisClass" ofObject: classOop) count: cnt - 1. self print: ' class'] ifFalse: [ self printStringOf: (self fetchPointer: 0 ofObject: (self fetchPointer: 6 "name" ofObject: classOop))]! ! !Interpreter methodsFor: '*System-Spoon-Virtual Machine Support' stamp: 'crl 5/23/2011 12:27'! rawLengthOf: oop "Return the number of indexable bytes or words in the given object. Assume the argument is not an integer. For a CompiledMethod, the size of the method header (in bytes) should be subtracted from the result." | header | header := self baseHeader: oop. ^ self rawLengthOf: oop baseHeader: header format: ((header >> 8) bitAnd: 16rF)! ! !Interpreter methodsFor: '*System-Spoon-Virtual Machine Support' stamp: 'crl 5/23/2011 12:28'! rawLengthOf: oop baseHeader: hdr format: fmt "Return the number of indexable bytes or words in the given object. Assume the given oop is not an integer." | sz | (hdr bitAnd: TypeMask) = HeaderTypeSizeAndClass ifTrue: [ sz := (self sizeHeader: oop) bitAnd: self allButTypeMask ] ifFalse: [ sz := hdr bitAnd: self sizeMask ]. ^sz! ! !Interpreter methodsFor: '*System-Spoon-Virtual Machine Support' stamp: 'crl 5/23/2011 12:14'! okayOop: signedOop "Verify that the given oop is legitimate. Check address, header, and size but not class." | sz type fmt unusedBit oop | oop := self cCoerce: signedOop to: 'usqInt'. "address and size checks" (self isIntegerObject: oop) ifTrue: [ ^true ]. ((oop > 0) & (oop < endOfMemory)) ifFalse: [ self error: 'oop is not a valid address' ]. ((oop \\ self bytesPerWord) = 0) ifFalse: [ self error: 'oop is not a word-aligned address' ]. sz := self sizeBitsOf: oop. (oop + sz) < endOfMemory ifFalse: [ self error: 'oop size would make it extend beyond the end of memory' ]. "header type checks" type := self headerType: oop. type = HeaderTypeFree ifTrue: [ self error: 'oop is a free chunk, not an object' ]. type = HeaderTypeShort ifTrue: [ (((self baseHeader: oop) >> 12) bitAnd: 16r1F) = 0 ifTrue: [ self error: 'cannot have zero compact class field in a short header' ]. ]. type = HeaderTypeClass ifTrue: [ ((oop >= self bytesPerWord) and: [(self headerType: oop - self bytesPerWord) = type]) ifFalse: [ self error: 'class header word has wrong type' ]. ]. type = HeaderTypeSizeAndClass ifTrue: [ ((oop >= (self bytesPerWord * 2)) and: [(self headerType: oop - (self bytesPerWord * 2)) = type and: [(self headerType: oop - self bytesPerWord) = type]]) ifFalse: [ self error: 'class header word has wrong type' ]. ]. "format check" fmt := self formatOf: oop. (fmt = 7) ifTrue: [ self error: 'oop has an unknown format type' ]. "mark and root bit checks" unusedBit := 16r20000000. self bytesPerWord = 8 ifTrue: [unusedBit := unusedBit << 16. unusedBit := unusedBit << 16]. ((self longAt: oop) bitAnd: unusedBit) = 0 ifFalse: [ self error: 'unused header bit 30 is set; should be zero' ]. "xxx ((self longAt: oop) bitAnd: MarkBit) = 0 ifFalse: [ self error: 'mark bit should not be set except during GC' ]. xxx" (((self longAt: oop) bitAnd: self rootBit) = 1 and: [oop >= youngStart]) ifTrue: [ self error: 'root bit is set in a young object' ]. ^true ! ! !Interpreter methodsFor: '*System-Spoon-Virtual Machine Support' stamp: 'ikp (auto pragmas dtl 2010-09-26) 3/26/2005 21:06'! oopHasOkayClass: signedOop "Attempt to verify that the given oop has a reasonable behavior. The class must be a valid, non-integer oop and must not be nilObj. It must be a pointers object with three or more fields. Finally, the instance specification field of the behavior must match that of the instance." | oop oopClass formatMask behaviorFormatBits oopFormatBits | oop := self cCoerce: signedOop to: 'usqInt'. self okayOop: oop. oopClass := self cCoerce: (self fetchClassOf: oop) to: 'usqInt'. (self isIntegerObject: oopClass) ifTrue: [ self error: 'a SmallInteger is not a valid class or behavior' ]. self okayOop: oopClass. ((self isPointers: oopClass) and: [(self lengthOf: oopClass) >= 3]) ifFalse: [ self error: 'a class (behavior) must be a pointers object of size >= 3' ]. (self isBytes: oop) ifTrue: [ formatMask := 16rC00 ] "ignore extra bytes size bits" ifFalse: [ formatMask := 16rF00 ]. behaviorFormatBits := (self formatOfClass: oopClass) bitAnd: formatMask. oopFormatBits := (self baseHeader: oop) bitAnd: formatMask. behaviorFormatBits = oopFormatBits ifFalse: [ self error: 'object and its class (behavior) formats differ' ]. ^true! ! !Interpreter methodsFor: '*System-Spoon-Virtual Machine Support' stamp: 'crl 5/22/2011 07:48'! classNameOf: aClass Is: className "Check if aClass's name is className" | srcName name length | (self lengthOf: aClass) <= 6 ifTrue: [^ false]. "Not a class but might be behavior" name := self fetchPointer: 0 ofObject: (self fetchPointer: 6 ofObject: aClass). (self isBytes: name) ifFalse: [^ false]. length := self stSizeOf: name. srcName := self cCoerce: (self arrayValueOf: name) to: 'char *'. 0 to: length - 1 do: [:i | (srcName at: i) = (className at: i) ifFalse: [^ false]]. "Check if className really ends at this point" ^ (className at: length) = 0! ! !Interpreter class methodsFor: '*System-Spoon-Virtual Machine Support' stamp: 'crl 8/17/2012 18:14'! getSystemAttribute: attributeID "Optional. Answer the string for the system attribute with the given integer ID. Answer nil if the given attribute is not defined on this platform. On platforms that support invoking programs from command lines (e.g., Unix), this mechanism can be used to pass command line arguments to programs written in Squeak. By convention, the first command line argument that is not a VM configuration option is considered a 'document' to be filed in. Such a document can add methods and classes, can contain a serialized object, can include code to be executed, or any combination of these. Currently defined attributes include: -1000...-1 - command line arguments that specify VM options 0 - the full path name for currently executing VM (or, on some platforms, just the path name of the VM's directory) 1 - full path name of this image 2 - a Squeak document to open, if any 3...1000 - command line arguments for Squeak programs 1001 - this platform's operating system 1002 - operating system version 1003 - this platform's processor type 1004 - vm version" ^ nil! ! !Interpreter class methodsFor: '*System-Spoon-Virtual Machine Support' stamp: 'crl 8/24/2012 10:15'! imagePath "Answer the full path name for the current image." | path primPath | path := (String new: 32) writableStream. primPath := self primImageName. path nextPutAll: 'file://'. (primPath first = $/) ifFalse: [path nextPut: $/]. path nextPutAll: (self primImageName copyReplaceAll: '\' with: '/'). ^path contents! ! !Interpreter class methodsFor: '*System-Spoon-Virtual Machine Support' stamp: 'crl 8/17/2012 18:14'! platformName "Return the name of the platform we're running on" ^self getSystemAttribute: 1001! ! !Interpreter class methodsFor: '*System-Spoon-Virtual Machine Support' stamp: 'crl 8/24/2012 10:25'! primAppPath ^ ''! ! !Interpreter class methodsFor: '*System-Spoon-Virtual Machine Support' stamp: 'crl 8/17/2012 09:52'! primImageName "Answer the full path name for the current image." "SmalltalkImage current imageName" self primitiveFailed! ! !Interpreter class methodsFor: '*System-Spoon-Virtual Machine Support' stamp: 'crl 8/17/2012 09:53'! primVmPath "Answer the path for the directory containing the Smalltalk virtual machine. Return the empty string if this primitive is not implemented." "SmalltalkImage current vmPath" ^ ''! ! !Interpreter class methodsFor: '*System-Spoon-Virtual Machine Support' stamp: 'crl 8/17/2012 18:29'! resumeMemoryNamed: memoryName usingProcessorNamed: processorName self primitiveFailed! ! !InterpreterSimulator methodsFor: '*System-Spoon-Virtual Machine Support' stamp: 'crl 4/15/2007 11:29'! pop: nItems "Note: May be called by translated primitive code." (thisContext sender receiver class == Flow) ifTrue: [ Transcript nextPut: $.; endEntry]. super pop: nItems! ! !InterpreterSimulator methodsFor: '*System-Spoon-Virtual Machine Support' stamp: 'crl 4/15/2007 10:40'! nameOfClass: classOop ^( ((self sizeBitsOf: classOop) = (Metaclass instSize + 1 * 4)) ifTrue: [ ( self nameOfClass: ( "thisClass" self fetchPointer: 5 ofObject: classOop) ) , ' class'] ifFalse: [ [ | name | name := self fetchPointer: 6 ofObject: classOop. self stringOf: ( ((self fetchClassOf: name) = (self fetchClassOf: (self fetchPointer: 20 ofObject: specialObjectsOop))) ifTrue: [ "The name is a Symbol." name] ifFalse: [ "The name is a ReadOnlyVariableBinding." self fetchPointer: 0 ofObject: name] ) ] on: Error do: [:exception | ( self nameOfClass: ( "thisClass" self fetchPointer: 5 ofObject: classOop) ) , ' class']] ) asSymbol! ! !InterpreterSimulator methodsFor: '*System-Spoon-Virtual Machine Support' stamp: 'crl 5/25/2011 10:53'! primitiveGetAttribute "Fetch the system attribute with the given integer ID. The result is a string, which will be empty if the attribute is not defined." | attr s attribute | attr := self stackIntegerValue: 0. self successful ifTrue: [ attribute := SmalltalkImage current getSystemAttribute: attr. attribute ifNil: [ ^self primitiveFail ]. s := self instantiateClass: (self splObj: ClassString) indexableSize: attribute size. 1 to: attribute size do: [ :i | self storeByte: i-1 ofObject: s withValue: (attribute at: i) asciiValue]. self pop: 2. "rcvr, attr" self push: s]. ! ! !InterpreterSimulator methodsFor: '*System-Spoon-Virtual Machine Support' stamp: 'crl 3/1/2012 01:37'! classNameOf: aClass Is: className "Check if aClass' name is className" | name | (self lengthOf: aClass) <= 6 ifTrue:[^false]. "Not a class but maybe behavior" name := self fetchPointer: 6 ofObject: aClass. (self isBytes: name) ifFalse:[^false]. ^ className = (self stringOf: name). ! ! !InterpreterSimulator methodsFor: '*System-Spoon-Virtual Machine Support' stamp: 'crl 5/25/2011 15:56'! successful ^primFailCode == 0! ! !InterpreterSimulator class methodsFor: '*System-Spoon-Virtual Machine Support' stamp: 'crl 4/15/2007 00:46'! openOn: pathname ^self new openOn: pathname! ! !InterpreterSimulator class methodsFor: '*System-Spoon-Virtual Machine Support' stamp: 'crl 4/15/2007 00:46'! simulate: snapshotPathString "Simulate the snapshot corresponding to snapshotPathString." ^(self openOn: snapshotPathString) test! ! -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Resources/context/documentation/book/pictures/welcome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/Resources/context/documentation/book/pictures/welcome.png -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Resources/context/documentation/book/pictures/workspace.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/Resources/context/documentation/book/pictures/workspace.png -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Resources/context/documentation/book/the Spoon book.pages: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/Resources/context/documentation/book/the Spoon book.pages -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Resources/context/documentation/book/the Spoon book.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/Resources/context/documentation/book/the Spoon book.pdf -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Resources/context/memories/946BE974-48B7-4D11-B209-6355B3E49722/946BE974-48B7-4D11-B209-6355B3E49722: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/Resources/context/memories/946BE974-48B7-4D11-B209-6355B3E49722/946BE974-48B7-4D11-B209-6355B3E49722 -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Resources/context/processor/Pharo3.0.app/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleDocumentTypes 8 | 9 | 10 | CFBundleTypeExtensions 11 | 12 | image 13 | 14 | CFBundleTypeIconFile 15 | Pharo.icns 16 | CFBundleTypeName 17 | Pharo Image File 18 | CFBundleTypeOSTypes 19 | 20 | STim 21 | 22 | CFBundleTypeRole 23 | Editor 24 | 25 | 26 | CFBundleTypeExtensions 27 | 28 | sources 29 | 30 | CFBundleTypeIconFile 31 | SqueakSources.icns 32 | CFBundleTypeName 33 | Squeak Sources File 34 | CFBundleTypeOSTypes 35 | 36 | STso 37 | 38 | CFBundleTypeRole 39 | Editor 40 | 41 | 42 | CFBundleTypeExtensions 43 | 44 | changes 45 | 46 | CFBundleTypeIconFile 47 | SqueakChanges.icns 48 | CFBundleTypeName 49 | Squeak Changes File 50 | CFBundleTypeOSTypes 51 | 52 | STch 53 | 54 | CFBundleTypeRole 55 | Editor 56 | 57 | 58 | CFBundleTypeExtensions 59 | 60 | sobj 61 | 62 | CFBundleTypeIconFile 63 | SqueakScript.icns 64 | CFBundleTypeName 65 | Squeak Script File 66 | CFBundleTypeOSTypes 67 | 68 | SOBJ 69 | 70 | CFBundleTypeRole 71 | Editor 72 | 73 | 74 | CFBundleTypeExtensions 75 | 76 | pr 77 | 78 | CFBundleTypeIconFile 79 | SqueakProject.icns 80 | CFBundleTypeName 81 | Squeak Project File 82 | CFBundleTypeOSTypes 83 | 84 | STpr 85 | 86 | CFBundleTypeRole 87 | Editor 88 | 89 | 90 | CFBundleTypeName 91 | JPEG 92 | CFBundleTypeOSTypes 93 | 94 | JPEG 95 | 96 | CFBundleTypeRole 97 | Viewer 98 | 99 | 100 | CFBundleTypeName 101 | TEXT 102 | CFBundleTypeOSTypes 103 | 104 | TEXT 105 | 106 | CFBundleTypeRole 107 | Viewer 108 | 109 | 110 | CFBundleTypeName 111 | ttro 112 | CFBundleTypeOSTypes 113 | 114 | ttro 115 | 116 | CFBundleTypeRole 117 | Viewer 118 | 119 | 120 | CFBundleTypeName 121 | HTML 122 | CFBundleTypeOSTypes 123 | 124 | HTML 125 | 126 | CFBundleTypeRole 127 | Viewer 128 | 129 | 130 | CFBundleTypeName 131 | RTF 132 | CFBundleTypeOSTypes 133 | 134 | RTF 135 | 136 | CFBundleTypeRole 137 | Viewer 138 | 139 | 140 | CFBundleTypeName 141 | TIFF 142 | CFBundleTypeOSTypes 143 | 144 | TIFF 145 | 146 | CFBundleTypeRole 147 | Viewer 148 | 149 | 150 | CFBundleTypeName 151 | PICT 152 | CFBundleTypeOSTypes 153 | 154 | PICT 155 | 156 | CFBundleTypeRole 157 | Viewer 158 | 159 | 160 | CFBundleTypeName 161 | URL 162 | CFBundleTypeOSTypes 163 | 164 | URL 165 | 166 | CFBundleTypeRole 167 | Viewer 168 | 169 | 170 | CFBundleTypeName 171 | ZIP 172 | CFBundleTypeOSTypes 173 | 174 | ZIP 175 | 176 | CFBundleTypeRole 177 | Viewer 178 | 179 | 180 | CFBundleTypeName 181 | zip 182 | CFBundleTypeOSTypes 183 | 184 | zip 185 | 186 | CFBundleTypeRole 187 | Viewer 188 | 189 | 190 | CFBundleTypeName 191 | BINA 192 | CFBundleTypeOSTypes 193 | 194 | BINA 195 | 196 | CFBundleTypeRole 197 | Viewer 198 | 199 | 200 | CFBundleTypeName 201 | GIFf 202 | CFBundleTypeOSTypes 203 | 204 | GIFf 205 | 206 | CFBundleTypeRole 207 | Viewer 208 | 209 | 210 | CFBundleTypeName 211 | PNGf 212 | CFBundleTypeOSTypes 213 | 214 | PNGf 215 | 216 | CFBundleTypeRole 217 | Viewer 218 | 219 | 220 | CFBundleTypeName 221 | MP3 222 | CFBundleTypeOSTypes 223 | 224 | MP3 225 | 226 | CFBundleTypeRole 227 | Viewer 228 | 229 | 230 | CFBundleTypeName 231 | MP3! 232 | CFBundleTypeOSTypes 233 | 234 | MP3! 235 | 236 | CFBundleTypeRole 237 | Viewer 238 | 239 | 240 | CFBundleTypeName 241 | MP3U 242 | CFBundleTypeOSTypes 243 | 244 | MP3U 245 | 246 | CFBundleTypeRole 247 | Viewer 248 | 249 | 250 | CFBundleTypeName 251 | MPEG 252 | CFBundleTypeOSTypes 253 | 254 | MPEG 255 | 256 | CFBundleTypeRole 257 | Viewer 258 | 259 | 260 | CFBundleTypeName 261 | mp3! 262 | CFBundleTypeOSTypes 263 | 264 | mp3! 265 | 266 | CFBundleTypeRole 267 | Viewer 268 | 269 | 270 | CFBundleTypeName 271 | MPG2 272 | CFBundleTypeOSTypes 273 | 274 | MPG2 275 | 276 | CFBundleTypeRole 277 | Viewer 278 | 279 | 280 | CFBundleTypeName 281 | MPG3 282 | CFBundleTypeOSTypes 283 | 284 | MPG3 285 | 286 | CFBundleTypeRole 287 | Viewer 288 | 289 | 290 | CFBundleTypeName 291 | MPG 292 | CFBundleTypeOSTypes 293 | 294 | MPG 295 | 296 | CFBundleTypeRole 297 | Viewer 298 | 299 | 300 | CFBundleTypeName 301 | Mp3 302 | CFBundleTypeOSTypes 303 | 304 | mp3 305 | 306 | CFBundleTypeRole 307 | Viewer 308 | 309 | 310 | CFBundleTypeName 311 | M3U 312 | CFBundleTypeOSTypes 313 | 314 | M3U 315 | 316 | CFBundleTypeRole 317 | Viewer 318 | 319 | 320 | CFBundleTypeName 321 | SRCS 322 | CFBundleTypeOSTypes 323 | 324 | SRCS 325 | 326 | CFBundleTypeRole 327 | Viewer 328 | 329 | 330 | CFBundleTypeName 331 | Chng 332 | CFBundleTypeOSTypes 333 | 334 | Chng 335 | 336 | CFBundleTypeRole 337 | Viewer 338 | 339 | 340 | CFBundleTypeName 341 | HPS5 342 | CFBundleTypeOSTypes 343 | 344 | HPS5 345 | 346 | CFBundleTypeRole 347 | Viewer 348 | 349 | 350 | CFBundleExecutable 351 | Pharo 352 | CFBundleGetInfoString 353 | CogVM VM 6.0-pre 354 | CFBundleIconFile 355 | Pharo.icns 356 | CFBundleIdentifier 357 | org.pharo.Pharo 358 | CFBundleInfoDictionaryVersion 359 | 3.0 360 | CFBundleName 361 | Pharo 362 | CFBundlePackageType 363 | APPL 364 | CFBundleShortVersionString 365 | Pharo 3.0 366 | CFBundleSignature 367 | FAST 368 | CFBundleVersion 369 | 21.0 370 | LSBackgroundOnly 371 | 372 | LSMinimumSystemVersion 373 | 374 | NSMainNibFile 375 | MainMenu 376 | NSPrincipalClass 377 | SqueakOSXApplication 378 | SqueakBrowserMouseCmdButton1 379 | 3 380 | SqueakBrowserMouseCmdButton2 381 | 3 382 | SqueakBrowserMouseCmdButton3 383 | 2 384 | SqueakBrowserMouseControlButton1 385 | 1 386 | SqueakBrowserMouseControlButton2 387 | 3 388 | SqueakBrowserMouseControlButton3 389 | 2 390 | SqueakBrowserMouseNoneButton1 391 | 1 392 | SqueakBrowserMouseNoneButton2 393 | 3 394 | SqueakBrowserMouseNoneButton3 395 | 2 396 | SqueakBrowserMouseOptionButton1 397 | 2 398 | SqueakBrowserMouseOptionButton2 399 | 3 400 | SqueakBrowserMouseOptionButton3 401 | 2 402 | SqueakDebug 403 | 0 404 | SqueakExplicitWindowOpenNeeded 405 | 406 | SqueakImageName 407 | Pharo3.0.image 408 | SqueakMaxHeapSize 409 | 536870912 410 | SqueakMouseCmdButton1 411 | 3 412 | SqueakMouseCmdButton2 413 | 3 414 | SqueakMouseCmdButton3 415 | 2 416 | SqueakMouseControlButton1 417 | 1 418 | SqueakMouseControlButton2 419 | 3 420 | SqueakMouseControlButton3 421 | 2 422 | SqueakMouseNoneButton1 423 | 1 424 | SqueakMouseNoneButton2 425 | 3 426 | SqueakMouseNoneButton3 427 | 2 428 | SqueakMouseOptionButton1 429 | 2 430 | SqueakMouseOptionButton2 431 | 3 432 | SqueakMouseOptionButton3 433 | 2 434 | SqueakPluginsBuiltInOrLocalOnly 435 | 436 | SqueakQuitOnQuitAppleEvent 437 | 438 | SqueakResourceDirectory 439 | 440 | SqueakTrustedDirectory 441 | /foobar/tooBar/forSqueak/bogus/ 442 | SqueakUIFlushPrimaryDeferNMilliseconds 443 | 20 444 | SqueakUnTrustedDirectory 445 | ~/Library/Preferences/Pharo/Internet/My Pharo/ 446 | SqueakUseFileMappedMMAP 447 | 448 | SqueakUIFadeForFullScreenInSeconds 449 | 0.5 450 | UTExportedTypeDeclarations 451 | 452 | 453 | UTTypeConformsTo 454 | 455 | public.data 456 | 457 | UTTypeDescription 458 | Pharo Image File 459 | UTTypeIdentifier 460 | org.pharo.image 461 | UTTypeTagSpecification 462 | 463 | com.apple.ostype 464 | STim 465 | public.filename-extension 466 | 467 | image 468 | 469 | public.mime-type 470 | application/pharo-image 471 | 472 | 473 | 474 | UTTypeConformsTo 475 | 476 | public.utf8-plain-text 477 | 478 | UTTypeDescription 479 | Pharo Sources File 480 | UTTypeIdentifier 481 | org.pharo.sources 482 | UTTypeTagSpecification 483 | 484 | com.apple.ostype 485 | STso 486 | public.filename-extension 487 | 488 | sources 489 | 490 | public.mime-type 491 | application/pharo-sources 492 | 493 | 494 | 495 | UTTypeConformsTo 496 | 497 | public.utf8-plain-text 498 | 499 | UTTypeDescription 500 | Pharo Changes File 501 | UTTypeIdentifier 502 | org.pharo.changes 503 | UTTypeTagSpecification 504 | 505 | com.apple.ostype 506 | STch 507 | public.filename-extension 508 | 509 | changes 510 | 511 | public.mime-type 512 | application/pharo-changes 513 | 514 | 515 | 516 | UTTypeConformsTo 517 | 518 | public.data 519 | 520 | UTTypeDescription 521 | Pharo Script File 522 | UTTypeIdentifier 523 | org.pharo.script 524 | UTTypeTagSpecification 525 | 526 | com.apple.ostype 527 | SOBJ 528 | public.filename-extension 529 | 530 | sobj 531 | 532 | public.mime-type 533 | application/squeak-script 534 | 535 | 536 | 537 | 538 | 539 | -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Resources/context/processor/Pharo3.0.app/Contents/MacOS/Pharo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/Resources/context/processor/Pharo3.0.app/Contents/MacOS/Pharo -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Resources/context/processor/Pharo3.0.app/Contents/MacOS/Plugins/libAsynchFilePlugin.dylib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/Resources/context/processor/Pharo3.0.app/Contents/MacOS/Plugins/libAsynchFilePlugin.dylib -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Resources/context/processor/Pharo3.0.app/Contents/MacOS/Plugins/libB3DAcceleratorPlugin.dylib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/Resources/context/processor/Pharo3.0.app/Contents/MacOS/Plugins/libB3DAcceleratorPlugin.dylib -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Resources/context/processor/Pharo3.0.app/Contents/MacOS/Plugins/libCroquetPlugin.dylib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/Resources/context/processor/Pharo3.0.app/Contents/MacOS/Plugins/libCroquetPlugin.dylib -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Resources/context/processor/Pharo3.0.app/Contents/MacOS/Plugins/libFT2Plugin.dylib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/Resources/context/processor/Pharo3.0.app/Contents/MacOS/Plugins/libFT2Plugin.dylib -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Resources/context/processor/Pharo3.0.app/Contents/MacOS/Plugins/libFloatMathPlugin.dylib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/Resources/context/processor/Pharo3.0.app/Contents/MacOS/Plugins/libFloatMathPlugin.dylib -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Resources/context/processor/Pharo3.0.app/Contents/MacOS/Plugins/libIA32ABI.dylib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/Resources/context/processor/Pharo3.0.app/Contents/MacOS/Plugins/libIA32ABI.dylib -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Resources/context/processor/Pharo3.0.app/Contents/MacOS/Plugins/libJPEGReadWriter2Plugin.dylib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/Resources/context/processor/Pharo3.0.app/Contents/MacOS/Plugins/libJPEGReadWriter2Plugin.dylib -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Resources/context/processor/Pharo3.0.app/Contents/MacOS/Plugins/libJPEGReaderPlugin.dylib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/Resources/context/processor/Pharo3.0.app/Contents/MacOS/Plugins/libJPEGReaderPlugin.dylib -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Resources/context/processor/Pharo3.0.app/Contents/MacOS/Plugins/libJoystickTabletPlugin.dylib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/Resources/context/processor/Pharo3.0.app/Contents/MacOS/Plugins/libJoystickTabletPlugin.dylib -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Resources/context/processor/Pharo3.0.app/Contents/MacOS/Plugins/libLocalePlugin.dylib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/Resources/context/processor/Pharo3.0.app/Contents/MacOS/Plugins/libLocalePlugin.dylib -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Resources/context/processor/Pharo3.0.app/Contents/MacOS/Plugins/libMIDIPlugin.dylib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/Resources/context/processor/Pharo3.0.app/Contents/MacOS/Plugins/libMIDIPlugin.dylib -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Resources/context/processor/Pharo3.0.app/Contents/MacOS/Plugins/libMpeg3Plugin.dylib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/Resources/context/processor/Pharo3.0.app/Contents/MacOS/Plugins/libMpeg3Plugin.dylib -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Resources/context/processor/Pharo3.0.app/Contents/MacOS/Plugins/libObjectiveCPlugin.dylib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/Resources/context/processor/Pharo3.0.app/Contents/MacOS/Plugins/libObjectiveCPlugin.dylib -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Resources/context/processor/Pharo3.0.app/Contents/MacOS/Plugins/libQuicktimePlugin.dylib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/Resources/context/processor/Pharo3.0.app/Contents/MacOS/Plugins/libQuicktimePlugin.dylib -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Resources/context/processor/Pharo3.0.app/Contents/MacOS/Plugins/libRePlugin.dylib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/Resources/context/processor/Pharo3.0.app/Contents/MacOS/Plugins/libRePlugin.dylib -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Resources/context/processor/Pharo3.0.app/Contents/MacOS/Plugins/libSerialPlugin.dylib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/Resources/context/processor/Pharo3.0.app/Contents/MacOS/Plugins/libSerialPlugin.dylib -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Resources/context/processor/Pharo3.0.app/Contents/MacOS/Plugins/libSqueakFFIPrims.dylib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/Resources/context/processor/Pharo3.0.app/Contents/MacOS/Plugins/libSqueakFFIPrims.dylib -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Resources/context/processor/Pharo3.0.app/Contents/MacOS/Plugins/libSqueakSSL.dylib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/Resources/context/processor/Pharo3.0.app/Contents/MacOS/Plugins/libSqueakSSL.dylib -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Resources/context/processor/Pharo3.0.app/Contents/MacOS/Plugins/libTestOSAPlugin.dylib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/Resources/context/processor/Pharo3.0.app/Contents/MacOS/Plugins/libTestOSAPlugin.dylib -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Resources/context/processor/Pharo3.0.app/Contents/MacOS/Plugins/libUUIDPlugin.dylib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/Resources/context/processor/Pharo3.0.app/Contents/MacOS/Plugins/libUUIDPlugin.dylib -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Resources/context/processor/Pharo3.0.app/Contents/MacOS/Plugins/libcairo.2.dylib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/Resources/context/processor/Pharo3.0.app/Contents/MacOS/Plugins/libcairo.2.dylib -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Resources/context/processor/Pharo3.0.app/Contents/MacOS/Plugins/libfreetype.6.dylib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/Resources/context/processor/Pharo3.0.app/Contents/MacOS/Plugins/libfreetype.6.dylib -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Resources/context/processor/Pharo3.0.app/Contents/MacOS/Plugins/libgit2.0.20.0.dylib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/Resources/context/processor/Pharo3.0.app/Contents/MacOS/Plugins/libgit2.0.20.0.dylib -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Resources/context/processor/Pharo3.0.app/Contents/MacOS/Plugins/libpixman-1.0.dylib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/Resources/context/processor/Pharo3.0.app/Contents/MacOS/Plugins/libpixman-1.0.dylib -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Resources/context/processor/Pharo3.0.app/Contents/MacOS/Plugins/libpng12.0.dylib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/Resources/context/processor/Pharo3.0.app/Contents/MacOS/Plugins/libpng12.0.dylib -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Resources/context/processor/Pharo3.0.app/Contents/MacOS/Plugins/libssh2.dylib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/Resources/context/processor/Pharo3.0.app/Contents/MacOS/Plugins/libssh2.dylib -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Resources/context/processor/Pharo3.0.app/Contents/Resources/English.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | "SqueakSelectImagePanePrompt" = "Open..."; 4 | -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Resources/context/processor/Pharo3.0.app/Contents/Resources/English.lproj/MainMenu.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/Resources/context/processor/Pharo3.0.app/Contents/Resources/English.lproj/MainMenu.nib -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Resources/context/processor/Pharo3.0.app/Contents/Resources/Pharo.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/Resources/context/processor/Pharo3.0.app/Contents/Resources/Pharo.icns -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Resources/context/processor/Pharo3.0.app/Contents/Resources/Pharo.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/Resources/context/processor/Pharo3.0.app/Contents/Resources/Pharo.ico -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Resources/context/processor/Pharo3.0.app/Contents/Resources/Pharo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/Resources/context/processor/Pharo3.0.app/Contents/Resources/Pharo.png -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Resources/context/processor/Pharo3.0.app/Contents/Resources/Pharo3.0.image: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/Resources/context/processor/Pharo3.0.app/Contents/Resources/Pharo3.0.image -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Resources/context/processor/Pharo3.0.app/Contents/Resources/PharoChanges.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/Resources/context/processor/Pharo3.0.app/Contents/Resources/PharoChanges.icns -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Resources/context/processor/Pharo3.0.app/Contents/Resources/PharoImage.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/Resources/context/processor/Pharo3.0.app/Contents/Resources/PharoImage.icns -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Resources/context/processor/Pharo3.0.app/Contents/Resources/PharoSources.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/Resources/context/processor/Pharo3.0.app/Contents/Resources/PharoSources.icns -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Resources/context/processor/Pharo3.0.app/Contents/Resources/Squeak VM.r: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | resource 'STR ' (1001, purgeable) { 4 | "Squeak, a pure object oriented programming environment " 5 | "based on Smalltalk-80 and work done at Apple and Disney" 6 | }; 7 | 8 | resource 'open' (128) 9 | { 10 | 'FAST', { '????','****' , 'STim', 'STch', 'SOBJ', 'TEXT', 'HTML', 'RTF ', 'ttro', 'JPEG', 'TIFF', 'PICT', 11 | 'URL ', 'ZIP ', 'zip ', 'BINA', 'GIFf', 'PNGf', 'MP3 ', 'MP3!', 'MP3U', 'MPEG', 'mp3!', 'MPG2', 'MPG3', 12 | 'MPG ', 'Mp3 ', 'M3U ', 'SRCS', 'Chng', 'HPS5' } 13 | }; 14 | 15 | resource 'kind' (1000) 16 | { 17 | 'FAST', 18 | verUS, 19 | { 20 | 'apnm', "Squeak", 21 | 'STim', "Squeak Image File", 22 | 'STch', "Squeak Changes File", 23 | 'SOBJ', "Squeak Script File" 24 | } 25 | }; 26 | -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Resources/context/processor/context.config: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/Resources/context/processor/context.config -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/Resources/context/workspaces/remote messaging: -------------------------------------------------------------------------------- 1 | "This workspace is for demoing remote messaging in Context 4a1 and later." "Start a remote-messaging server." RemoteMessagingServer new inspect "Connect to the history memory. In the inspector we just opened, notice the description the server gives for itself, summarizing the clients it's serving." MemoryControl recordHistoryInMemoryWithID: (UUID fromString: '946BE974-48B7-4D11-B209-6355B3E49722') applyingName: 'history' "Test connectivity with the history memory." Transcript cr; show: (MemoryControl memoryNamed: 'history') ping "Get the class base IDs from the history memory." (MemoryControl memoryNamed: 'history') getClassBaseIDs "Browse remote classes in the history memory." OtherBrowser openOn: (MemoryControl memoryNamed: 'history') "Browser the processes in the history memory." OtherProcessBrowser openOn: (MemoryControl memoryNamed: 'history') "Snapshot the history memory." (MemoryControl memoryNamed: 'history') snapshot (MemoryControl counterpartIn: (MemoryControl memoryNamed: 'history')) initialize -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/_CodeSignature/CodeDirectory: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/_CodeSignature/CodeDirectory -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/_CodeSignature/CodeRequirements: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/_CodeSignature/CodeRequirements -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/_CodeSignature/CodeResources: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | files 6 | 7 | Resources/.lldbinit 8 | 9 | ovzOej7CFnpkEj52+u/wzL5mqlg= 10 | 11 | Resources/Flow.bundle/Contents/Info.plist 12 | 13 | 0u8jekzhvbJ8liO1/CT1Gn8WkGg= 14 | 15 | Resources/Flow.bundle/Contents/MacOS/Flow 16 | 17 | MqYaxMdYaLmBTz5M/zCkqaRTtgc= 18 | 19 | Resources/Flow.bundle/Contents/Resources/English.lproj/InfoPlist.strings 20 | 21 | hash 22 | 23 | cVCIS//7KA0JrdckIniEGWAQleU= 24 | 25 | optional 26 | 27 | 28 | Resources/Flow.bundle/Contents/Resources/libportmidi.dylib 29 | 30 | XiCiKm+3TW0OBLk8fHJE8RI5JLE= 31 | 32 | Resources/context/changes/memory/1-ContextPrecursors-crl.1.mcz 33 | 34 | lIyvLCZO+KRGAL+NfxIBMa9erNI= 35 | 36 | Resources/context/changes/memory/2-Context-crl.1.mcz 37 | 38 | sM5wBsUSw+7Epuu18tBLAYe7yxY= 39 | 40 | Resources/context/changes/processor/1 of 4 - remote messaging.cs 41 | 42 | 7qrGVJbUKKwozyinQQ2d28tk5nc= 43 | 44 | Resources/context/changes/processor/2 of 4 - unused-method removal.cs 45 | 46 | cMPJ5qPrDH9/MkFHQOEszkFnIRk= 47 | 48 | Resources/context/changes/processor/3 of 4 - active imprinting.cs 49 | 50 | Db4qZcYf2ME6dldij7OVOEI7AlI= 51 | 52 | Resources/context/changes/processor/4 of 4 - collateral improvements.cs 53 | 54 | Of3R3JfCKnuxymnyKrhr+TB3ZC0= 55 | 56 | Resources/context/documentation/book/pictures/welcome.png 57 | 58 | Qi0n6Wm4tS4U5fHEY8tsO5dz9iM= 59 | 60 | Resources/context/documentation/book/pictures/workspace.png 61 | 62 | I8K3IsNweZTg+vI9t4SmbFmcz1M= 63 | 64 | Resources/context/documentation/book/the Spoon book.pages 65 | 66 | aZdY/Ew0tOsRKcwz6ZnC5u2F+H8= 67 | 68 | Resources/context/documentation/book/the Spoon book.pdf 69 | 70 | SMNda/QXHpGDdeczb0Tg8c2kpCk= 71 | 72 | Resources/context/memories/23687C16-EBB8-48B7-A38D-1B8D9216865B/23687C16-EBB8-48B7-A38D-1B8D9216865B.changes 73 | 74 | /EN31X4cPL7DUIDgiLuyGB6UpdE= 75 | 76 | Resources/context/memories/23687C16-EBB8-48B7-A38D-1B8D9216865B/23687C16-EBB8-48B7-A38D-1B8D9216865B.image 77 | 78 | G3LftADOI9as/p6HV/+Zs1vsBCQ= 79 | 80 | Resources/context/memories/946BE974-48B7-4D11-B209-6355B3E49722/946BE974-48B7-4D11-B209-6355B3E49722.image 81 | 82 | DXvCfcNt8qEJeD0xPlgdgVmMWKM= 83 | 84 | Resources/context/memories/946BE974-48B7-4D11-B209-6355B3E49722/SqueakV3.sources 85 | 86 | y7Z6EjIduId10U944oARF5m976g= 87 | 88 | Resources/context/processor/context.config 89 | 90 | kouquLHq1KhvECbIg+vCQcF7Kx8= 91 | 92 | 93 | files2 94 | 95 | Library/QuickLook/SqueakQL.qlgenerator/Contents/Info.plist 96 | 97 | PmsnIcWdpzBhR8Dha7fncjG/k60= 98 | 99 | Library/QuickLook/SqueakQL.qlgenerator/Contents/MacOS/SqueakQL 100 | 101 | BdgwRQcgOwyQuaxnFwFpvnVZD7o= 102 | 103 | Library/QuickLook/SqueakQL.qlgenerator/Contents/MacOS/SqueakQL.sig 104 | 105 | /j5JqPatciWZj/ACBbteX0UdTjk= 106 | 107 | Library/QuickLook/SqueakQL.qlgenerator/Contents/Resources/English.lproj/InfoPlist.strings 108 | 109 | He3NcxiQ02JfuCLq6QVu82vqCWQ= 110 | 111 | Linux/bin/spoon 112 | 113 | PXvpRHvHKla+FHb9D5U71Nhe1fQ= 114 | 115 | Linux/bin/spoon.sh 116 | 117 | 43XIfPBwvUXpqAdJ+7JdAxvJ9ZQ= 118 | 119 | Linux/lib/spoon/4.4.7-2357/activeFilesystem.changes 120 | 121 | HMGZlsfsnGqdAz2H1SPDbILbkxI= 122 | 123 | Linux/lib/spoon/4.4.7-2357/activeFilesystem.image 124 | 125 | rymVsOj4E3kkXwskKWUSj42Ev0E= 126 | 127 | Linux/lib/spoon/4.4.7-2357/so.AioPlugin 128 | 129 | qWVbxX7yrgtzA0TDYMmAO3yjHdk= 130 | 131 | Linux/lib/spoon/4.4.7-2357/so.ClipboardExtendedPlugin 132 | 133 | 1mrretigTHFuVUpKDqx4n7Akc0w= 134 | 135 | Linux/lib/spoon/4.4.7-2357/so.FileCopyPlugin 136 | 137 | Hmo2zrhopEHto5qeRQTDL2GLwOA= 138 | 139 | Linux/lib/spoon/4.4.7-2357/so.Flow 140 | 141 | LR79FOsetjMK2JT0n6jr5WxmvFI= 142 | 143 | Linux/lib/spoon/4.4.7-2357/so.HostWindowPlugin 144 | 145 | HQwE01mcgCAgCNqPTpW7Qcf7Zxo= 146 | 147 | Linux/lib/spoon/4.4.7-2357/so.KedamaPlugin 148 | 149 | 6SrZ1p1lY5p/h3p01yiOOGf6y1Q= 150 | 151 | Linux/lib/spoon/4.4.7-2357/so.KedamaPlugin2 152 | 153 | +Cl0UsZIAvvgncnzM7PEHBnFN4E= 154 | 155 | Linux/lib/spoon/4.4.7-2357/so.MIDIPlugin 156 | 157 | VbWGQ9cRqw5YFlwjzmaOLJTyx6o= 158 | 159 | Linux/lib/spoon/4.4.7-2357/so.Mpeg3Plugin 160 | 161 | x+oMigpnf1YVtbXX1xCpKEaTqPE= 162 | 163 | Linux/lib/spoon/4.4.7-2357/so.Squeak3D 164 | 165 | 2BUTrwhktgOG/tqPPOubVJW+I24= 166 | 167 | Linux/lib/spoon/4.4.7-2357/so.SqueakFFIPrims 168 | 169 | G5dDYyCEM4qpJj6chnU3B2c/5R8= 170 | 171 | Linux/lib/spoon/4.4.7-2357/so.UnixOSProcessPlugin 172 | 173 | 5lExU40+7vLFuU75cN6egFYY9GY= 174 | 175 | Linux/lib/spoon/4.4.7-2357/so.XDisplayControlPlugin 176 | 177 | XPl0yd24QP3mDOfcqKqrossvEI8= 178 | 179 | Linux/lib/spoon/4.4.7-2357/so.vm-display-X11 180 | 181 | 09w8SeAModNbBXADgzqk0nDS2ds= 182 | 183 | Linux/lib/spoon/4.4.7-2357/so.vm-display-custom 184 | 185 | ZZoBsHKtklc2YD/VSh4oe8iTibs= 186 | 187 | Linux/lib/spoon/4.4.7-2357/so.vm-display-fbdev 188 | 189 | 3ik/tNqWIWnltSqX1K8uJ4AWN00= 190 | 191 | Linux/lib/spoon/4.4.7-2357/so.vm-display-null 192 | 193 | S8HGjCpkLO1PGNJyUIzqDTW52kk= 194 | 195 | Linux/lib/spoon/4.4.7-2357/so.vm-sound-ALSA 196 | 197 | H8X5AsapDWhqxQp22DznRYG+YtQ= 198 | 199 | Linux/lib/spoon/4.4.7-2357/so.vm-sound-OSS 200 | 201 | rjkKoKPZM0g0VwiykQE1uUZgCJM= 202 | 203 | Linux/lib/spoon/4.4.7-2357/so.vm-sound-custom 204 | 205 | NMDRPEFVW+p8wjo575bdt4a6kjE= 206 | 207 | Linux/lib/spoon/4.4.7-2357/so.vm-sound-null 208 | 209 | M9urYEL+En9FN9nOGOmoiMmQjGU= 210 | 211 | Linux/lib/spoon/4.4.7-2357/spoonvm 212 | 213 | uk5hUwkNQz7/qI0y7wvstw9nfJ0= 214 | 215 | Linux/share/man/man1/squeak.1 216 | 217 | Iq7rhBF22BqfvgrBqV56qOzs3Hk= 218 | 219 | MacOS/Spoon VM Opt 220 | 221 | cdhash 222 | 223 | xaiehWzRoMGYy6UlimGp3CQE9PU= 224 | 225 | requirement 226 | identifier "Spoon VM Opt" and anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = RJ7UR445N4 227 | 228 | Resources/.lldbinit 229 | 230 | ovzOej7CFnpkEj52+u/wzL5mqlg= 231 | 232 | Resources/Flow.bundle/Contents/Info.plist 233 | 234 | 0u8jekzhvbJ8liO1/CT1Gn8WkGg= 235 | 236 | Resources/Flow.bundle/Contents/MacOS/Flow 237 | 238 | MqYaxMdYaLmBTz5M/zCkqaRTtgc= 239 | 240 | Resources/Flow.bundle/Contents/Resources/English.lproj/InfoPlist.strings 241 | 242 | hash 243 | 244 | cVCIS//7KA0JrdckIniEGWAQleU= 245 | 246 | optional 247 | 248 | 249 | Resources/Flow.bundle/Contents/Resources/libportmidi.dylib 250 | 251 | XiCiKm+3TW0OBLk8fHJE8RI5JLE= 252 | 253 | Resources/context/changes/memory/1-ContextPrecursors-crl.1.mcz 254 | 255 | lIyvLCZO+KRGAL+NfxIBMa9erNI= 256 | 257 | Resources/context/changes/memory/2-Context-crl.1.mcz 258 | 259 | sM5wBsUSw+7Epuu18tBLAYe7yxY= 260 | 261 | Resources/context/changes/processor/1 of 4 - remote messaging.cs 262 | 263 | 7qrGVJbUKKwozyinQQ2d28tk5nc= 264 | 265 | Resources/context/changes/processor/2 of 4 - unused-method removal.cs 266 | 267 | cMPJ5qPrDH9/MkFHQOEszkFnIRk= 268 | 269 | Resources/context/changes/processor/3 of 4 - active imprinting.cs 270 | 271 | Db4qZcYf2ME6dldij7OVOEI7AlI= 272 | 273 | Resources/context/changes/processor/4 of 4 - collateral improvements.cs 274 | 275 | Of3R3JfCKnuxymnyKrhr+TB3ZC0= 276 | 277 | Resources/context/documentation/book/pictures/welcome.png 278 | 279 | Qi0n6Wm4tS4U5fHEY8tsO5dz9iM= 280 | 281 | Resources/context/documentation/book/pictures/workspace.png 282 | 283 | I8K3IsNweZTg+vI9t4SmbFmcz1M= 284 | 285 | Resources/context/documentation/book/the Spoon book.pages 286 | 287 | aZdY/Ew0tOsRKcwz6ZnC5u2F+H8= 288 | 289 | Resources/context/documentation/book/the Spoon book.pdf 290 | 291 | SMNda/QXHpGDdeczb0Tg8c2kpCk= 292 | 293 | Resources/context/memories/23687C16-EBB8-48B7-A38D-1B8D9216865B/23687C16-EBB8-48B7-A38D-1B8D9216865B.changes 294 | 295 | /EN31X4cPL7DUIDgiLuyGB6UpdE= 296 | 297 | Resources/context/memories/23687C16-EBB8-48B7-A38D-1B8D9216865B/23687C16-EBB8-48B7-A38D-1B8D9216865B.image 298 | 299 | G3LftADOI9as/p6HV/+Zs1vsBCQ= 300 | 301 | Resources/context/memories/946BE974-48B7-4D11-B209-6355B3E49722/946BE974-48B7-4D11-B209-6355B3E49722.image 302 | 303 | DXvCfcNt8qEJeD0xPlgdgVmMWKM= 304 | 305 | Resources/context/memories/946BE974-48B7-4D11-B209-6355B3E49722/SqueakV3.sources 306 | 307 | y7Z6EjIduId10U944oARF5m976g= 308 | 309 | Resources/context/processor/context.config 310 | 311 | kouquLHq1KhvECbIg+vCQcF7Kx8= 312 | 313 | win32/5/flow.dll 314 | 315 | ohiR0mab6fUBHeB6YVEHu9gcQ1c= 316 | 317 | win32/5/spoon.exe 318 | 319 | sQFnIlaglfREgtwATGu6N5x3hlc= 320 | 321 | win32/5/spoon.ini 322 | 323 | sFc4N9Ov51x9OMvCqbOrYR7pkqo= 324 | 325 | win32/8/flow.dll 326 | 327 | vpHXqKW0emjZ2UTlU6s+7Cu8V0Y= 328 | 329 | win32/8/spoon.exe 330 | 331 | 7z0VOPSdbZLSHszEVWWpdhvJA+4= 332 | 333 | win32/FT2Plugin.dll 334 | 335 | I8+YVLxkNGaVJY6U95/LsaF2I00= 336 | 337 | win32/SqueakFFIPrims.dll 338 | 339 | LmKt+HGgImzB+C5z3yfa3Qdu68s= 340 | 341 | win32/SqueakSSL.dll 342 | 343 | ANiVuoTjSrNJhgT1BaCEx6TP16M= 344 | 345 | win32/SqueakV3.sources 346 | 347 | y7Z6EjIduId10U944oARF5m976g= 348 | 349 | win32/flow.dll 350 | 351 | aU1UOigHRJociq1kaaxKKhEsOGc= 352 | 353 | win32/msvcr100d.dll 354 | 355 | aFKyxZKzeU2hFNasXqnQgzF79a8= 356 | 357 | win32/msvcr120d.dll 358 | 359 | AsWzQs4wV+yOUos3ELs4AePunas= 360 | 361 | win32/portforward.exe 362 | 363 | 6PyzsCJAynpn/J5nJFvfsdDM0U8= 364 | 365 | win32/splash.bmp 366 | 367 | Z1pqJVW+i+rjyL1SHfVLHAEsjW4= 368 | 369 | win32/spoon.exe 370 | 371 | sQFnIlaglfREgtwATGu6N5x3hlc= 372 | 373 | win32/spoon.ini 374 | 375 | j5Vol+ANBZp4iACugsXQbnoVwi8= 376 | 377 | 378 | rules 379 | 380 | ^Resources/ 381 | 382 | ^Resources/.*\.lproj/ 383 | 384 | optional 385 | 386 | weight 387 | 1000 388 | 389 | ^Resources/.*\.lproj/locversion.plist$ 390 | 391 | omit 392 | 393 | weight 394 | 1100 395 | 396 | ^version.plist$ 397 | 398 | 399 | rules2 400 | 401 | .*\.dSYM($|/) 402 | 403 | weight 404 | 11 405 | 406 | ^(.*/)?\.DS_Store$ 407 | 408 | omit 409 | 410 | weight 411 | 2000 412 | 413 | ^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/ 414 | 415 | nested 416 | 417 | weight 418 | 10 419 | 420 | ^.* 421 | 422 | ^Info\.plist$ 423 | 424 | omit 425 | 426 | weight 427 | 20 428 | 429 | ^PkgInfo$ 430 | 431 | omit 432 | 433 | weight 434 | 20 435 | 436 | ^Resources/ 437 | 438 | weight 439 | 20 440 | 441 | ^Resources/.*\.lproj/ 442 | 443 | optional 444 | 445 | weight 446 | 1000 447 | 448 | ^Resources/.*\.lproj/locversion.plist$ 449 | 450 | omit 451 | 452 | weight 453 | 1100 454 | 455 | ^[^/]+$ 456 | 457 | nested 458 | 459 | weight 460 | 10 461 | 462 | ^embedded\.provisionprofile$ 463 | 464 | weight 465 | 20 466 | 467 | ^version\.plist$ 468 | 469 | weight 470 | 20 471 | 472 | 473 | 474 | 475 | -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/_CodeSignature/CodeSignature: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/_CodeSignature/CodeSignature -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/win32/5/flow.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/win32/5/flow.dll -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/win32/5/spoon.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/win32/5/spoon.exe -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/win32/5/spoon.ini: -------------------------------------------------------------------------------- 1 | [Global] 2 | DeferUpdate=1 3 | ShowConsole=0 4 | DynamicConsole=1 5 | ReduceCPUUsage=1 6 | ReduceCPUInBackground=0 7 | 3ButtonMouse=0 8 | 1ButtonMouse=0 9 | PriorityBoost=1 10 | B3DXUsesOpenGL=1 11 | CaseSensitiveFileMode=0 12 | -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/win32/8/flow.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/win32/8/flow.dll -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/win32/8/spoon.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/win32/8/spoon.exe -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/win32/FT2Plugin.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/win32/FT2Plugin.dll -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/win32/SqueakFFIPrims.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/win32/SqueakFFIPrims.dll -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/win32/SqueakSSL.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/win32/SqueakSSL.dll -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/win32/SqueakV3.sources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/win32/SqueakV3.sources -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/win32/flow.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/win32/flow.dll -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/win32/msvcr100d.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/win32/msvcr100d.dll -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/win32/msvcr120d.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/win32/msvcr120d.dll -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/win32/portforward.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/win32/portforward.exe -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/win32/splash.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/win32/splash.bmp -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/win32/spoon.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context processor.app/Contents/win32/spoon.exe -------------------------------------------------------------------------------- /context.app/Contents/Resources/context processor.app/Contents/win32/spoon.ini: -------------------------------------------------------------------------------- 1 | [Global] 2 | DeferUpdate=1 3 | ShowConsole=0 4 | DynamicConsole=1 5 | ReduceCPUUsage=1 6 | ReduceCPUInBackground=0 7 | 3ButtonMouse=0 8 | 1ButtonMouse=1 9 | PriorityBoost=1 10 | B3DXUsesOpenGL=0 11 | UseDirectSound=1 12 | CaseSensitiveFileMode=0 13 | EnableAltF4Quit=0 14 | -------------------------------------------------------------------------------- /context.app/Contents/Resources/context.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccrraaiigg/context/b24d68c9666b41133d87f46788daaa7874dce5bf/context.app/Contents/Resources/context.icns -------------------------------------------------------------------------------- /context.app/Contents/Resources/description.rtfd/TXT.rtf: -------------------------------------------------------------------------------- 1 | {\rtf1\ansi\ansicpg1252\cocoartf1343\cocoasubrtf160 2 | {\fonttbl} 3 | {\colortbl;\red255\green255\blue255;} 4 | } -------------------------------------------------------------------------------- /context.app/Contents/_CodeSignature/CodeResources: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | files 6 | 7 | Resources/Scripts/main.scpt 8 | 9 | 0WIzqf1gKAa4MmVHO6Ur2qVUolc= 10 | 11 | Resources/applet.icns 12 | 13 | sINd6lbiqHD5dL8c6u79cFvVXhw= 14 | 15 | Resources/applet.rsrc 16 | 17 | L+5FFoBs79CXuVD2msmkW8FtsO4= 18 | 19 | Resources/context 4 alpha 1 processor.app/Contents/Info.plist 20 | 21 | fZTi0ckJzBXT9E4quv6sjtr3ufk= 22 | 23 | Resources/context 4 alpha 1 processor.app/Contents/Library/QuickLook/SqueakQL.qlgenerator/Contents/Info.plist 24 | 25 | PmsnIcWdpzBhR8Dha7fncjG/k60= 26 | 27 | Resources/context 4 alpha 1 processor.app/Contents/Library/QuickLook/SqueakQL.qlgenerator/Contents/MacOS/SqueakQL 28 | 29 | BdgwRQcgOwyQuaxnFwFpvnVZD7o= 30 | 31 | Resources/context 4 alpha 1 processor.app/Contents/Library/QuickLook/SqueakQL.qlgenerator/Contents/MacOS/SqueakQL.sig 32 | 33 | /j5JqPatciWZj/ACBbteX0UdTjk= 34 | 35 | Resources/context 4 alpha 1 processor.app/Contents/Library/QuickLook/SqueakQL.qlgenerator/Contents/Resources/English.lproj/InfoPlist.strings 36 | 37 | hash 38 | 39 | He3NcxiQ02JfuCLq6QVu82vqCWQ= 40 | 41 | optional 42 | 43 | 44 | Resources/context 4 alpha 1 processor.app/Contents/Linux/bin/spoon 45 | 46 | PXvpRHvHKla+FHb9D5U71Nhe1fQ= 47 | 48 | Resources/context 4 alpha 1 processor.app/Contents/Linux/bin/spoon.sh 49 | 50 | 43XIfPBwvUXpqAdJ+7JdAxvJ9ZQ= 51 | 52 | Resources/context 4 alpha 1 processor.app/Contents/Linux/lib/spoon/4.4.7-2357/activeFilesystem.changes 53 | 54 | HMGZlsfsnGqdAz2H1SPDbILbkxI= 55 | 56 | Resources/context 4 alpha 1 processor.app/Contents/Linux/lib/spoon/4.4.7-2357/activeFilesystem.image 57 | 58 | rymVsOj4E3kkXwskKWUSj42Ev0E= 59 | 60 | Resources/context 4 alpha 1 processor.app/Contents/Linux/lib/spoon/4.4.7-2357/so.AioPlugin 61 | 62 | qWVbxX7yrgtzA0TDYMmAO3yjHdk= 63 | 64 | Resources/context 4 alpha 1 processor.app/Contents/Linux/lib/spoon/4.4.7-2357/so.ClipboardExtendedPlugin 65 | 66 | 1mrretigTHFuVUpKDqx4n7Akc0w= 67 | 68 | Resources/context 4 alpha 1 processor.app/Contents/Linux/lib/spoon/4.4.7-2357/so.FileCopyPlugin 69 | 70 | Hmo2zrhopEHto5qeRQTDL2GLwOA= 71 | 72 | Resources/context 4 alpha 1 processor.app/Contents/Linux/lib/spoon/4.4.7-2357/so.Flow 73 | 74 | LR79FOsetjMK2JT0n6jr5WxmvFI= 75 | 76 | Resources/context 4 alpha 1 processor.app/Contents/Linux/lib/spoon/4.4.7-2357/so.HostWindowPlugin 77 | 78 | HQwE01mcgCAgCNqPTpW7Qcf7Zxo= 79 | 80 | Resources/context 4 alpha 1 processor.app/Contents/Linux/lib/spoon/4.4.7-2357/so.KedamaPlugin 81 | 82 | 6SrZ1p1lY5p/h3p01yiOOGf6y1Q= 83 | 84 | Resources/context 4 alpha 1 processor.app/Contents/Linux/lib/spoon/4.4.7-2357/so.KedamaPlugin2 85 | 86 | +Cl0UsZIAvvgncnzM7PEHBnFN4E= 87 | 88 | Resources/context 4 alpha 1 processor.app/Contents/Linux/lib/spoon/4.4.7-2357/so.MIDIPlugin 89 | 90 | VbWGQ9cRqw5YFlwjzmaOLJTyx6o= 91 | 92 | Resources/context 4 alpha 1 processor.app/Contents/Linux/lib/spoon/4.4.7-2357/so.Mpeg3Plugin 93 | 94 | x+oMigpnf1YVtbXX1xCpKEaTqPE= 95 | 96 | Resources/context 4 alpha 1 processor.app/Contents/Linux/lib/spoon/4.4.7-2357/so.Squeak3D 97 | 98 | 2BUTrwhktgOG/tqPPOubVJW+I24= 99 | 100 | Resources/context 4 alpha 1 processor.app/Contents/Linux/lib/spoon/4.4.7-2357/so.SqueakFFIPrims 101 | 102 | G5dDYyCEM4qpJj6chnU3B2c/5R8= 103 | 104 | Resources/context 4 alpha 1 processor.app/Contents/Linux/lib/spoon/4.4.7-2357/so.UnixOSProcessPlugin 105 | 106 | 5lExU40+7vLFuU75cN6egFYY9GY= 107 | 108 | Resources/context 4 alpha 1 processor.app/Contents/Linux/lib/spoon/4.4.7-2357/so.XDisplayControlPlugin 109 | 110 | XPl0yd24QP3mDOfcqKqrossvEI8= 111 | 112 | Resources/context 4 alpha 1 processor.app/Contents/Linux/lib/spoon/4.4.7-2357/so.vm-display-X11 113 | 114 | 09w8SeAModNbBXADgzqk0nDS2ds= 115 | 116 | Resources/context 4 alpha 1 processor.app/Contents/Linux/lib/spoon/4.4.7-2357/so.vm-display-custom 117 | 118 | ZZoBsHKtklc2YD/VSh4oe8iTibs= 119 | 120 | Resources/context 4 alpha 1 processor.app/Contents/Linux/lib/spoon/4.4.7-2357/so.vm-display-fbdev 121 | 122 | 3ik/tNqWIWnltSqX1K8uJ4AWN00= 123 | 124 | Resources/context 4 alpha 1 processor.app/Contents/Linux/lib/spoon/4.4.7-2357/so.vm-display-null 125 | 126 | S8HGjCpkLO1PGNJyUIzqDTW52kk= 127 | 128 | Resources/context 4 alpha 1 processor.app/Contents/Linux/lib/spoon/4.4.7-2357/so.vm-sound-ALSA 129 | 130 | H8X5AsapDWhqxQp22DznRYG+YtQ= 131 | 132 | Resources/context 4 alpha 1 processor.app/Contents/Linux/lib/spoon/4.4.7-2357/so.vm-sound-OSS 133 | 134 | rjkKoKPZM0g0VwiykQE1uUZgCJM= 135 | 136 | Resources/context 4 alpha 1 processor.app/Contents/Linux/lib/spoon/4.4.7-2357/so.vm-sound-custom 137 | 138 | NMDRPEFVW+p8wjo575bdt4a6kjE= 139 | 140 | Resources/context 4 alpha 1 processor.app/Contents/Linux/lib/spoon/4.4.7-2357/so.vm-sound-null 141 | 142 | M9urYEL+En9FN9nOGOmoiMmQjGU= 143 | 144 | Resources/context 4 alpha 1 processor.app/Contents/Linux/lib/spoon/4.4.7-2357/spoonvm 145 | 146 | uk5hUwkNQz7/qI0y7wvstw9nfJ0= 147 | 148 | Resources/context 4 alpha 1 processor.app/Contents/Linux/share/man/man1/squeak.1 149 | 150 | Iq7rhBF22BqfvgrBqV56qOzs3Hk= 151 | 152 | Resources/context 4 alpha 1 processor.app/Contents/MacOS/Spoon VM Opt 153 | 154 | iyfH510TCmZV2hnA5mjAZkJhDKw= 155 | 156 | Resources/context 4 alpha 1 processor.app/Contents/PkgInfo 157 | 158 | KBab09QKIOgNnkf11X8nlWBZexk= 159 | 160 | Resources/context 4 alpha 1 processor.app/Contents/Resources/.lldbinit 161 | 162 | ovzOej7CFnpkEj52+u/wzL5mqlg= 163 | 164 | Resources/context 4 alpha 1 processor.app/Contents/Resources/Flow.bundle/Contents/Info.plist 165 | 166 | 0u8jekzhvbJ8liO1/CT1Gn8WkGg= 167 | 168 | Resources/context 4 alpha 1 processor.app/Contents/Resources/Flow.bundle/Contents/MacOS/Flow 169 | 170 | MqYaxMdYaLmBTz5M/zCkqaRTtgc= 171 | 172 | Resources/context 4 alpha 1 processor.app/Contents/Resources/Flow.bundle/Contents/Resources/English.lproj/InfoPlist.strings 173 | 174 | hash 175 | 176 | cVCIS//7KA0JrdckIniEGWAQleU= 177 | 178 | optional 179 | 180 | 181 | Resources/context 4 alpha 1 processor.app/Contents/Resources/Flow.bundle/Contents/Resources/libportmidi.dylib 182 | 183 | XiCiKm+3TW0OBLk8fHJE8RI5JLE= 184 | 185 | Resources/context 4 alpha 1 processor.app/Contents/Resources/context/changes/memory/1-ContextPrecursors-crl.1.mcz 186 | 187 | lIyvLCZO+KRGAL+NfxIBMa9erNI= 188 | 189 | Resources/context 4 alpha 1 processor.app/Contents/Resources/context/changes/memory/2-Context-crl.1.mcz 190 | 191 | sM5wBsUSw+7Epuu18tBLAYe7yxY= 192 | 193 | Resources/context 4 alpha 1 processor.app/Contents/Resources/context/changes/processor/1 of 4 - remote messaging.cs 194 | 195 | 7qrGVJbUKKwozyinQQ2d28tk5nc= 196 | 197 | Resources/context 4 alpha 1 processor.app/Contents/Resources/context/changes/processor/2 of 4 - unused-method removal.cs 198 | 199 | cMPJ5qPrDH9/MkFHQOEszkFnIRk= 200 | 201 | Resources/context 4 alpha 1 processor.app/Contents/Resources/context/changes/processor/3 of 4 - active imprinting.cs 202 | 203 | Db4qZcYf2ME6dldij7OVOEI7AlI= 204 | 205 | Resources/context 4 alpha 1 processor.app/Contents/Resources/context/changes/processor/4 of 4 - collateral improvements.cs 206 | 207 | Of3R3JfCKnuxymnyKrhr+TB3ZC0= 208 | 209 | Resources/context 4 alpha 1 processor.app/Contents/Resources/context/documentation/book/pictures/welcome.png 210 | 211 | Qi0n6Wm4tS4U5fHEY8tsO5dz9iM= 212 | 213 | Resources/context 4 alpha 1 processor.app/Contents/Resources/context/documentation/book/pictures/workspace.png 214 | 215 | I8K3IsNweZTg+vI9t4SmbFmcz1M= 216 | 217 | Resources/context 4 alpha 1 processor.app/Contents/Resources/context/documentation/book/the Spoon book.pages 218 | 219 | aZdY/Ew0tOsRKcwz6ZnC5u2F+H8= 220 | 221 | Resources/context 4 alpha 1 processor.app/Contents/Resources/context/documentation/book/the Spoon book.pdf 222 | 223 | SMNda/QXHpGDdeczb0Tg8c2kpCk= 224 | 225 | Resources/context 4 alpha 1 processor.app/Contents/Resources/context/memories/23687C16-EBB8-48B7-A38D-1B8D9216865B/23687C16-EBB8-48B7-A38D-1B8D9216865B.changes 226 | 227 | /EN31X4cPL7DUIDgiLuyGB6UpdE= 228 | 229 | Resources/context 4 alpha 1 processor.app/Contents/Resources/context/memories/23687C16-EBB8-48B7-A38D-1B8D9216865B/23687C16-EBB8-48B7-A38D-1B8D9216865B.image 230 | 231 | G3LftADOI9as/p6HV/+Zs1vsBCQ= 232 | 233 | Resources/context 4 alpha 1 processor.app/Contents/Resources/context/memories/946BE974-48B7-4D11-B209-6355B3E49722/946BE974-48B7-4D11-B209-6355B3E49722.image 234 | 235 | DXvCfcNt8qEJeD0xPlgdgVmMWKM= 236 | 237 | Resources/context 4 alpha 1 processor.app/Contents/Resources/context/memories/946BE974-48B7-4D11-B209-6355B3E49722/SqueakV3.sources 238 | 239 | y7Z6EjIduId10U944oARF5m976g= 240 | 241 | Resources/context 4 alpha 1 processor.app/Contents/Resources/context/processor/context.config 242 | 243 | kouquLHq1KhvECbIg+vCQcF7Kx8= 244 | 245 | Resources/context 4 alpha 1 processor.app/Contents/_CodeSignature/CodeDirectory 246 | 247 | jd8j2JPU/mXtPls8AoSxtbB4GoE= 248 | 249 | Resources/context 4 alpha 1 processor.app/Contents/_CodeSignature/CodeRequirements 250 | 251 | hUB8L8IDPumEUiQlM5NK58rEIZ8= 252 | 253 | Resources/context 4 alpha 1 processor.app/Contents/_CodeSignature/CodeResources 254 | 255 | 5/RzHT+I6bGpLxoiha0sQ/wH9Gg= 256 | 257 | Resources/context 4 alpha 1 processor.app/Contents/_CodeSignature/CodeSignature 258 | 259 | +9+JthXr2waajrOhILmsbhGc4OE= 260 | 261 | Resources/context 4 alpha 1 processor.app/Contents/win32/5/flow.dll 262 | 263 | ohiR0mab6fUBHeB6YVEHu9gcQ1c= 264 | 265 | Resources/context 4 alpha 1 processor.app/Contents/win32/5/spoon.exe 266 | 267 | sQFnIlaglfREgtwATGu6N5x3hlc= 268 | 269 | Resources/context 4 alpha 1 processor.app/Contents/win32/5/spoon.ini 270 | 271 | sFc4N9Ov51x9OMvCqbOrYR7pkqo= 272 | 273 | Resources/context 4 alpha 1 processor.app/Contents/win32/8/flow.dll 274 | 275 | vpHXqKW0emjZ2UTlU6s+7Cu8V0Y= 276 | 277 | Resources/context 4 alpha 1 processor.app/Contents/win32/8/spoon.exe 278 | 279 | 7z0VOPSdbZLSHszEVWWpdhvJA+4= 280 | 281 | Resources/context 4 alpha 1 processor.app/Contents/win32/FT2Plugin.dll 282 | 283 | I8+YVLxkNGaVJY6U95/LsaF2I00= 284 | 285 | Resources/context 4 alpha 1 processor.app/Contents/win32/SqueakFFIPrims.dll 286 | 287 | LmKt+HGgImzB+C5z3yfa3Qdu68s= 288 | 289 | Resources/context 4 alpha 1 processor.app/Contents/win32/SqueakSSL.dll 290 | 291 | ANiVuoTjSrNJhgT1BaCEx6TP16M= 292 | 293 | Resources/context 4 alpha 1 processor.app/Contents/win32/SqueakV3.sources 294 | 295 | y7Z6EjIduId10U944oARF5m976g= 296 | 297 | Resources/context 4 alpha 1 processor.app/Contents/win32/flow.dll 298 | 299 | aU1UOigHRJociq1kaaxKKhEsOGc= 300 | 301 | Resources/context 4 alpha 1 processor.app/Contents/win32/msvcr100d.dll 302 | 303 | aFKyxZKzeU2hFNasXqnQgzF79a8= 304 | 305 | Resources/context 4 alpha 1 processor.app/Contents/win32/msvcr120d.dll 306 | 307 | AsWzQs4wV+yOUos3ELs4AePunas= 308 | 309 | Resources/context 4 alpha 1 processor.app/Contents/win32/portforward.exe 310 | 311 | 6PyzsCJAynpn/J5nJFvfsdDM0U8= 312 | 313 | Resources/context 4 alpha 1 processor.app/Contents/win32/splash.bmp 314 | 315 | Z1pqJVW+i+rjyL1SHfVLHAEsjW4= 316 | 317 | Resources/context 4 alpha 1 processor.app/Contents/win32/spoon.exe 318 | 319 | sQFnIlaglfREgtwATGu6N5x3hlc= 320 | 321 | Resources/context 4 alpha 1 processor.app/Contents/win32/spoon.ini 322 | 323 | j5Vol+ANBZp4iACugsXQbnoVwi8= 324 | 325 | Resources/context 4 alpha 1 processor.app/Icon 326 | 327 | 2jmj7l5rSw0yVb/vlWAYkK/YBwk= 328 | 329 | Resources/context.icns 330 | 331 | ZALiBP6QOkZmkr6vljxp54KfzYs= 332 | 333 | Resources/description.rtfd/TXT.rtf 334 | 335 | perqrWWBFvGSOMe4iRpjs368ahU= 336 | 337 | 338 | files2 339 | 340 | RUNME/README.html 341 | 342 | pivPv/dFNxdFYWw7B61TNLsp+ow= 343 | 344 | RUNME/linux/context.sh 345 | 346 | ralAASTKbbrN75bhfP4j1jA/mGc= 347 | 348 | RUNME/mac/context 4 alpha 1.app 349 | 350 | symlink 351 | ../../../../context 4 alpha 1.app 352 | 353 | RUNME/windows/context.vbs 354 | 355 | ipF7h2sIBrpZPiKTnum3YfUWKjY= 356 | 357 | Resources/Scripts/main.scpt 358 | 359 | 0WIzqf1gKAa4MmVHO6Ur2qVUolc= 360 | 361 | Resources/applet.icns 362 | 363 | sINd6lbiqHD5dL8c6u79cFvVXhw= 364 | 365 | Resources/applet.rsrc 366 | 367 | L+5FFoBs79CXuVD2msmkW8FtsO4= 368 | 369 | Resources/context 4 alpha 1 processor.app/Contents/Info.plist 370 | 371 | fZTi0ckJzBXT9E4quv6sjtr3ufk= 372 | 373 | Resources/context 4 alpha 1 processor.app/Contents/Library/QuickLook/SqueakQL.qlgenerator/Contents/Info.plist 374 | 375 | PmsnIcWdpzBhR8Dha7fncjG/k60= 376 | 377 | Resources/context 4 alpha 1 processor.app/Contents/Library/QuickLook/SqueakQL.qlgenerator/Contents/MacOS/SqueakQL 378 | 379 | BdgwRQcgOwyQuaxnFwFpvnVZD7o= 380 | 381 | Resources/context 4 alpha 1 processor.app/Contents/Library/QuickLook/SqueakQL.qlgenerator/Contents/MacOS/SqueakQL.sig 382 | 383 | /j5JqPatciWZj/ACBbteX0UdTjk= 384 | 385 | Resources/context 4 alpha 1 processor.app/Contents/Library/QuickLook/SqueakQL.qlgenerator/Contents/Resources/English.lproj/InfoPlist.strings 386 | 387 | hash 388 | 389 | He3NcxiQ02JfuCLq6QVu82vqCWQ= 390 | 391 | optional 392 | 393 | 394 | Resources/context 4 alpha 1 processor.app/Contents/Linux/bin/spoon 395 | 396 | PXvpRHvHKla+FHb9D5U71Nhe1fQ= 397 | 398 | Resources/context 4 alpha 1 processor.app/Contents/Linux/bin/spoon.sh 399 | 400 | 43XIfPBwvUXpqAdJ+7JdAxvJ9ZQ= 401 | 402 | Resources/context 4 alpha 1 processor.app/Contents/Linux/lib/spoon/4.4.7-2357/activeFilesystem.changes 403 | 404 | HMGZlsfsnGqdAz2H1SPDbILbkxI= 405 | 406 | Resources/context 4 alpha 1 processor.app/Contents/Linux/lib/spoon/4.4.7-2357/activeFilesystem.image 407 | 408 | rymVsOj4E3kkXwskKWUSj42Ev0E= 409 | 410 | Resources/context 4 alpha 1 processor.app/Contents/Linux/lib/spoon/4.4.7-2357/so.AioPlugin 411 | 412 | qWVbxX7yrgtzA0TDYMmAO3yjHdk= 413 | 414 | Resources/context 4 alpha 1 processor.app/Contents/Linux/lib/spoon/4.4.7-2357/so.ClipboardExtendedPlugin 415 | 416 | 1mrretigTHFuVUpKDqx4n7Akc0w= 417 | 418 | Resources/context 4 alpha 1 processor.app/Contents/Linux/lib/spoon/4.4.7-2357/so.FileCopyPlugin 419 | 420 | Hmo2zrhopEHto5qeRQTDL2GLwOA= 421 | 422 | Resources/context 4 alpha 1 processor.app/Contents/Linux/lib/spoon/4.4.7-2357/so.Flow 423 | 424 | LR79FOsetjMK2JT0n6jr5WxmvFI= 425 | 426 | Resources/context 4 alpha 1 processor.app/Contents/Linux/lib/spoon/4.4.7-2357/so.HostWindowPlugin 427 | 428 | HQwE01mcgCAgCNqPTpW7Qcf7Zxo= 429 | 430 | Resources/context 4 alpha 1 processor.app/Contents/Linux/lib/spoon/4.4.7-2357/so.KedamaPlugin 431 | 432 | 6SrZ1p1lY5p/h3p01yiOOGf6y1Q= 433 | 434 | Resources/context 4 alpha 1 processor.app/Contents/Linux/lib/spoon/4.4.7-2357/so.KedamaPlugin2 435 | 436 | +Cl0UsZIAvvgncnzM7PEHBnFN4E= 437 | 438 | Resources/context 4 alpha 1 processor.app/Contents/Linux/lib/spoon/4.4.7-2357/so.MIDIPlugin 439 | 440 | VbWGQ9cRqw5YFlwjzmaOLJTyx6o= 441 | 442 | Resources/context 4 alpha 1 processor.app/Contents/Linux/lib/spoon/4.4.7-2357/so.Mpeg3Plugin 443 | 444 | x+oMigpnf1YVtbXX1xCpKEaTqPE= 445 | 446 | Resources/context 4 alpha 1 processor.app/Contents/Linux/lib/spoon/4.4.7-2357/so.Squeak3D 447 | 448 | 2BUTrwhktgOG/tqPPOubVJW+I24= 449 | 450 | Resources/context 4 alpha 1 processor.app/Contents/Linux/lib/spoon/4.4.7-2357/so.SqueakFFIPrims 451 | 452 | G5dDYyCEM4qpJj6chnU3B2c/5R8= 453 | 454 | Resources/context 4 alpha 1 processor.app/Contents/Linux/lib/spoon/4.4.7-2357/so.UnixOSProcessPlugin 455 | 456 | 5lExU40+7vLFuU75cN6egFYY9GY= 457 | 458 | Resources/context 4 alpha 1 processor.app/Contents/Linux/lib/spoon/4.4.7-2357/so.XDisplayControlPlugin 459 | 460 | XPl0yd24QP3mDOfcqKqrossvEI8= 461 | 462 | Resources/context 4 alpha 1 processor.app/Contents/Linux/lib/spoon/4.4.7-2357/so.vm-display-X11 463 | 464 | 09w8SeAModNbBXADgzqk0nDS2ds= 465 | 466 | Resources/context 4 alpha 1 processor.app/Contents/Linux/lib/spoon/4.4.7-2357/so.vm-display-custom 467 | 468 | ZZoBsHKtklc2YD/VSh4oe8iTibs= 469 | 470 | Resources/context 4 alpha 1 processor.app/Contents/Linux/lib/spoon/4.4.7-2357/so.vm-display-fbdev 471 | 472 | 3ik/tNqWIWnltSqX1K8uJ4AWN00= 473 | 474 | Resources/context 4 alpha 1 processor.app/Contents/Linux/lib/spoon/4.4.7-2357/so.vm-display-null 475 | 476 | S8HGjCpkLO1PGNJyUIzqDTW52kk= 477 | 478 | Resources/context 4 alpha 1 processor.app/Contents/Linux/lib/spoon/4.4.7-2357/so.vm-sound-ALSA 479 | 480 | H8X5AsapDWhqxQp22DznRYG+YtQ= 481 | 482 | Resources/context 4 alpha 1 processor.app/Contents/Linux/lib/spoon/4.4.7-2357/so.vm-sound-OSS 483 | 484 | rjkKoKPZM0g0VwiykQE1uUZgCJM= 485 | 486 | Resources/context 4 alpha 1 processor.app/Contents/Linux/lib/spoon/4.4.7-2357/so.vm-sound-custom 487 | 488 | NMDRPEFVW+p8wjo575bdt4a6kjE= 489 | 490 | Resources/context 4 alpha 1 processor.app/Contents/Linux/lib/spoon/4.4.7-2357/so.vm-sound-null 491 | 492 | M9urYEL+En9FN9nOGOmoiMmQjGU= 493 | 494 | Resources/context 4 alpha 1 processor.app/Contents/Linux/lib/spoon/4.4.7-2357/spoonvm 495 | 496 | uk5hUwkNQz7/qI0y7wvstw9nfJ0= 497 | 498 | Resources/context 4 alpha 1 processor.app/Contents/Linux/share/man/man1/squeak.1 499 | 500 | Iq7rhBF22BqfvgrBqV56qOzs3Hk= 501 | 502 | Resources/context 4 alpha 1 processor.app/Contents/MacOS/Spoon VM Opt 503 | 504 | iyfH510TCmZV2hnA5mjAZkJhDKw= 505 | 506 | Resources/context 4 alpha 1 processor.app/Contents/PkgInfo 507 | 508 | KBab09QKIOgNnkf11X8nlWBZexk= 509 | 510 | Resources/context 4 alpha 1 processor.app/Contents/Resources/.lldbinit 511 | 512 | ovzOej7CFnpkEj52+u/wzL5mqlg= 513 | 514 | Resources/context 4 alpha 1 processor.app/Contents/Resources/Flow.bundle/Contents/Info.plist 515 | 516 | 0u8jekzhvbJ8liO1/CT1Gn8WkGg= 517 | 518 | Resources/context 4 alpha 1 processor.app/Contents/Resources/Flow.bundle/Contents/MacOS/Flow 519 | 520 | MqYaxMdYaLmBTz5M/zCkqaRTtgc= 521 | 522 | Resources/context 4 alpha 1 processor.app/Contents/Resources/Flow.bundle/Contents/Resources/English.lproj/InfoPlist.strings 523 | 524 | hash 525 | 526 | cVCIS//7KA0JrdckIniEGWAQleU= 527 | 528 | optional 529 | 530 | 531 | Resources/context 4 alpha 1 processor.app/Contents/Resources/Flow.bundle/Contents/Resources/libportmidi.dylib 532 | 533 | XiCiKm+3TW0OBLk8fHJE8RI5JLE= 534 | 535 | Resources/context 4 alpha 1 processor.app/Contents/Resources/context/changes/memory/1-ContextPrecursors-crl.1.mcz 536 | 537 | lIyvLCZO+KRGAL+NfxIBMa9erNI= 538 | 539 | Resources/context 4 alpha 1 processor.app/Contents/Resources/context/changes/memory/2-Context-crl.1.mcz 540 | 541 | sM5wBsUSw+7Epuu18tBLAYe7yxY= 542 | 543 | Resources/context 4 alpha 1 processor.app/Contents/Resources/context/changes/processor/1 of 4 - remote messaging.cs 544 | 545 | 7qrGVJbUKKwozyinQQ2d28tk5nc= 546 | 547 | Resources/context 4 alpha 1 processor.app/Contents/Resources/context/changes/processor/2 of 4 - unused-method removal.cs 548 | 549 | cMPJ5qPrDH9/MkFHQOEszkFnIRk= 550 | 551 | Resources/context 4 alpha 1 processor.app/Contents/Resources/context/changes/processor/3 of 4 - active imprinting.cs 552 | 553 | Db4qZcYf2ME6dldij7OVOEI7AlI= 554 | 555 | Resources/context 4 alpha 1 processor.app/Contents/Resources/context/changes/processor/4 of 4 - collateral improvements.cs 556 | 557 | Of3R3JfCKnuxymnyKrhr+TB3ZC0= 558 | 559 | Resources/context 4 alpha 1 processor.app/Contents/Resources/context/documentation/book/pictures/welcome.png 560 | 561 | Qi0n6Wm4tS4U5fHEY8tsO5dz9iM= 562 | 563 | Resources/context 4 alpha 1 processor.app/Contents/Resources/context/documentation/book/pictures/workspace.png 564 | 565 | I8K3IsNweZTg+vI9t4SmbFmcz1M= 566 | 567 | Resources/context 4 alpha 1 processor.app/Contents/Resources/context/documentation/book/the Spoon book.pages 568 | 569 | aZdY/Ew0tOsRKcwz6ZnC5u2F+H8= 570 | 571 | Resources/context 4 alpha 1 processor.app/Contents/Resources/context/documentation/book/the Spoon book.pdf 572 | 573 | SMNda/QXHpGDdeczb0Tg8c2kpCk= 574 | 575 | Resources/context 4 alpha 1 processor.app/Contents/Resources/context/memories/23687C16-EBB8-48B7-A38D-1B8D9216865B/23687C16-EBB8-48B7-A38D-1B8D9216865B.changes 576 | 577 | /EN31X4cPL7DUIDgiLuyGB6UpdE= 578 | 579 | Resources/context 4 alpha 1 processor.app/Contents/Resources/context/memories/23687C16-EBB8-48B7-A38D-1B8D9216865B/23687C16-EBB8-48B7-A38D-1B8D9216865B.image 580 | 581 | G3LftADOI9as/p6HV/+Zs1vsBCQ= 582 | 583 | Resources/context 4 alpha 1 processor.app/Contents/Resources/context/memories/946BE974-48B7-4D11-B209-6355B3E49722/946BE974-48B7-4D11-B209-6355B3E49722.image 584 | 585 | DXvCfcNt8qEJeD0xPlgdgVmMWKM= 586 | 587 | Resources/context 4 alpha 1 processor.app/Contents/Resources/context/memories/946BE974-48B7-4D11-B209-6355B3E49722/SqueakV3.sources 588 | 589 | y7Z6EjIduId10U944oARF5m976g= 590 | 591 | Resources/context 4 alpha 1 processor.app/Contents/Resources/context/processor/context.config 592 | 593 | kouquLHq1KhvECbIg+vCQcF7Kx8= 594 | 595 | Resources/context 4 alpha 1 processor.app/Contents/_CodeSignature/CodeDirectory 596 | 597 | jd8j2JPU/mXtPls8AoSxtbB4GoE= 598 | 599 | Resources/context 4 alpha 1 processor.app/Contents/_CodeSignature/CodeRequirements 600 | 601 | hUB8L8IDPumEUiQlM5NK58rEIZ8= 602 | 603 | Resources/context 4 alpha 1 processor.app/Contents/_CodeSignature/CodeResources 604 | 605 | 5/RzHT+I6bGpLxoiha0sQ/wH9Gg= 606 | 607 | Resources/context 4 alpha 1 processor.app/Contents/_CodeSignature/CodeSignature 608 | 609 | +9+JthXr2waajrOhILmsbhGc4OE= 610 | 611 | Resources/context 4 alpha 1 processor.app/Contents/win32/5/flow.dll 612 | 613 | ohiR0mab6fUBHeB6YVEHu9gcQ1c= 614 | 615 | Resources/context 4 alpha 1 processor.app/Contents/win32/5/spoon.exe 616 | 617 | sQFnIlaglfREgtwATGu6N5x3hlc= 618 | 619 | Resources/context 4 alpha 1 processor.app/Contents/win32/5/spoon.ini 620 | 621 | sFc4N9Ov51x9OMvCqbOrYR7pkqo= 622 | 623 | Resources/context 4 alpha 1 processor.app/Contents/win32/8/flow.dll 624 | 625 | vpHXqKW0emjZ2UTlU6s+7Cu8V0Y= 626 | 627 | Resources/context 4 alpha 1 processor.app/Contents/win32/8/spoon.exe 628 | 629 | 7z0VOPSdbZLSHszEVWWpdhvJA+4= 630 | 631 | Resources/context 4 alpha 1 processor.app/Contents/win32/FT2Plugin.dll 632 | 633 | I8+YVLxkNGaVJY6U95/LsaF2I00= 634 | 635 | Resources/context 4 alpha 1 processor.app/Contents/win32/SqueakFFIPrims.dll 636 | 637 | LmKt+HGgImzB+C5z3yfa3Qdu68s= 638 | 639 | Resources/context 4 alpha 1 processor.app/Contents/win32/SqueakSSL.dll 640 | 641 | ANiVuoTjSrNJhgT1BaCEx6TP16M= 642 | 643 | Resources/context 4 alpha 1 processor.app/Contents/win32/SqueakV3.sources 644 | 645 | y7Z6EjIduId10U944oARF5m976g= 646 | 647 | Resources/context 4 alpha 1 processor.app/Contents/win32/flow.dll 648 | 649 | aU1UOigHRJociq1kaaxKKhEsOGc= 650 | 651 | Resources/context 4 alpha 1 processor.app/Contents/win32/msvcr100d.dll 652 | 653 | aFKyxZKzeU2hFNasXqnQgzF79a8= 654 | 655 | Resources/context 4 alpha 1 processor.app/Contents/win32/msvcr120d.dll 656 | 657 | AsWzQs4wV+yOUos3ELs4AePunas= 658 | 659 | Resources/context 4 alpha 1 processor.app/Contents/win32/portforward.exe 660 | 661 | 6PyzsCJAynpn/J5nJFvfsdDM0U8= 662 | 663 | Resources/context 4 alpha 1 processor.app/Contents/win32/splash.bmp 664 | 665 | Z1pqJVW+i+rjyL1SHfVLHAEsjW4= 666 | 667 | Resources/context 4 alpha 1 processor.app/Contents/win32/spoon.exe 668 | 669 | sQFnIlaglfREgtwATGu6N5x3hlc= 670 | 671 | Resources/context 4 alpha 1 processor.app/Contents/win32/spoon.ini 672 | 673 | j5Vol+ANBZp4iACugsXQbnoVwi8= 674 | 675 | Resources/context 4 alpha 1 processor.app/Icon 676 | 677 | 2jmj7l5rSw0yVb/vlWAYkK/YBwk= 678 | 679 | Resources/context.icns 680 | 681 | ZALiBP6QOkZmkr6vljxp54KfzYs= 682 | 683 | Resources/description.rtfd/TXT.rtf 684 | 685 | perqrWWBFvGSOMe4iRpjs368ahU= 686 | 687 | 688 | rules 689 | 690 | ^Resources/ 691 | 692 | ^Resources/.*\.lproj/ 693 | 694 | optional 695 | 696 | weight 697 | 1000 698 | 699 | ^Resources/.*\.lproj/locversion.plist$ 700 | 701 | omit 702 | 703 | weight 704 | 1100 705 | 706 | ^version.plist$ 707 | 708 | 709 | rules2 710 | 711 | .*\.dSYM($|/) 712 | 713 | weight 714 | 11 715 | 716 | ^(.*/)?\.DS_Store$ 717 | 718 | omit 719 | 720 | weight 721 | 2000 722 | 723 | ^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/ 724 | 725 | nested 726 | 727 | weight 728 | 10 729 | 730 | ^.* 731 | 732 | ^Info\.plist$ 733 | 734 | omit 735 | 736 | weight 737 | 20 738 | 739 | ^PkgInfo$ 740 | 741 | omit 742 | 743 | weight 744 | 20 745 | 746 | ^Resources/ 747 | 748 | weight 749 | 20 750 | 751 | ^Resources/.*\.lproj/ 752 | 753 | optional 754 | 755 | weight 756 | 1000 757 | 758 | ^Resources/.*\.lproj/locversion.plist$ 759 | 760 | omit 761 | 762 | weight 763 | 1100 764 | 765 | ^[^/]+$ 766 | 767 | nested 768 | 769 | weight 770 | 10 771 | 772 | ^embedded\.provisionprofile$ 773 | 774 | weight 775 | 20 776 | 777 | ^version\.plist$ 778 | 779 | weight 780 | 20 781 | 782 | 783 | 784 | 785 | --------------------------------------------------------------------------------