Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/guillep/phasme
https://github.com/guillep/phasme
Last synced: 16 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/guillep/phasme
- Owner: guillep
- Created: 2022-02-19T13:25:11.000Z (almost 3 years ago)
- Default Branch: master
- Last Pushed: 2022-02-28T13:59:20.000Z (almost 3 years ago)
- Last Synced: 2024-10-31T06:42:04.099Z (2 months ago)
- Language: Smalltalk
- Size: 42 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Phasme
A x86-64 learning compiler.
It features:
- an x86 ASM generator
- a Mach-o reader to load the compiled ASM (compiled through gcc)
- a simple simulator based on unicorn
- a simple stack based compiler that
- implements arithmetics, control flow, function calls
- implements the System V calling convention for up to 2 arguments
- stores intermediate values in the stack and sub-utilised registers (on purpose :))Coming:
- a debugger and disassembler
- management of arrays and structures
- a bit on parsing either using Smacc as a grammar-based parser generator, or petit parser using parser combinators, or both
- an elf reader for linuxes## Dependencies
The pharo dependencies are already specified in the baseline. Load the project in iceberg and then install through metacello.
However, this requries installing two native libraries:
- llvm, for the disassembler
- unicorn, for the simulationDownload libllvm-full and libunicorn from the following and put them next to the image or VM.:
- Linux, x86-64: https://files.pharo.org/vm/pharo-spur64/Linux-x86_64/third-party/
- OSX, x86-64: https://files.pharo.org/vm/pharo-spur64/Darwin-x86_64/third-party/CAUTION: only tested on OSX for now