{"id":16087441,"url":"https://github.com/tesonep/pharo-vm-embedded-example","last_synced_at":"2025-06-28T23:32:39.003Z","repository":{"id":138885631,"uuid":"233562954","full_name":"tesonep/pharo-vm-embedded-example","owner":"tesonep","description":"This repository have an example of how to create a PharoVM with an embedded image.","archived":false,"fork":false,"pushed_at":"2023-08-17T15:44:01.000Z","size":226,"stargazers_count":13,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"pharo-11","last_synced_at":"2025-04-02T12:52:37.210Z","etag":null,"topics":["example","pharo","pharo-vm","vm"],"latest_commit_sha":null,"homepage":null,"language":"Smalltalk","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tesonep.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-01-13T09:52:05.000Z","updated_at":"2024-05-06T16:32:43.000Z","dependencies_parsed_at":null,"dependency_job_id":"1b610d95-4991-42ca-a313-04adbdb4bc33","html_url":"https://github.com/tesonep/pharo-vm-embedded-example","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/tesonep/pharo-vm-embedded-example","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tesonep%2Fpharo-vm-embedded-example","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tesonep%2Fpharo-vm-embedded-example/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tesonep%2Fpharo-vm-embedded-example/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tesonep%2Fpharo-vm-embedded-example/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tesonep","download_url":"https://codeload.github.com/tesonep/pharo-vm-embedded-example/tar.gz/refs/heads/pharo-11","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tesonep%2Fpharo-vm-embedded-example/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262513625,"owners_count":23322661,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["example","pharo","pharo-vm","vm"],"created_at":"2024-10-09T13:29:43.015Z","updated_at":"2025-06-28T23:32:38.960Z","avatar_url":"https://github.com/tesonep.png","language":"Smalltalk","readme":"# Pharo VM Example: Showing how to embed an image.\n\nThis repository have an example of how to create a PharoVM with an embedded image.\n\nIn this example we create an application based on the SDL2AthensDrawingExample.\nThis example application, opens a SDL windows where it is possible to draw with the mouse.\n\nThe Pharo image is contained in the executable and it is modified so it does not write in the disk.\nAlso, it shows how to restrict the command line arguments and how to set a new icon and resources. \n\nThe example is only for Windows applications, but it can easily extended to other platforms.\n\n\nThis example presents four elements: \n-----------------------------------\n\n1- A CMake process to generate an application that uses the VM and embed the image in the executable.\n\n2- An example of main program that instantiate and launch the embedded VM. This main program allows the programmers to add special \nbehaviour before executing the image.\n\n3- A set of modifications in the image to disable all writing and handling the embedded image.\n\n4- The functions to handle the embedded image, using the abilitiy to have different strategies to access the image, \nthis example proposes a solution to transparently handle embedded images. \n\nHow to test it\n--------------\n\nThe whole process is implemented using CMake and Cygwin. As it compiles a new executable some dependencies are needed:\n\n- A working Pharo\n- CMake (at least version 2.8.4)\n- CLang\n- Binutils (make and friends)\n- wget\n- unzip\n\nIf you are able to build the [Pharo Headless VM](https://github.com/pharo-project/opensmalltalk-vm/tree/headless) \nyou have already all the dependencies.\n\nAs this example uses the Pharo Headless VM, it uses 64bits Pharo images.\n\nTo buld it, clone this repository and from Cygwin execute:\n\n```bash\n  cmake .\n  make \n```\n\nThe created application will be in *build/output*, just executing it will open it.\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftesonep%2Fpharo-vm-embedded-example","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftesonep%2Fpharo-vm-embedded-example","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftesonep%2Fpharo-vm-embedded-example/lists"}