What is to deliver Pharo?
You probably know what Pharo is, but the interesting next questions are:
- what are the components that compose Pharo?
- what does it mean to deliver Pharo?
- what are the elements that should be maintained to make sure that Pharo is running?
We present a digestible list of elements to answer these questions. It is in no way exhaustive.
Language
- Compiler
- Parser
- Runtime (class installer, cross referencer)
- Exceptions
- Collections
- Streams
- Package
- Literal objects (character, string, number, symbol, booleans)
- Kernel environment, classes, methods,....)
- Low-level concurrent abstractions (process, semaphore, delay, scheduler,..)
Basic utilities
- Files
- HTTP/HTTPS * (thanks beta9)
- Network (TCP/UDP)
- JSON * (thanks beta9)
- COM/DCOM
- FFI
- Character encoding * (thanks beta9)
- Taskit
- Command line
Drivers
- DB drivers
- SQLLight * (thanks beta9)
Graphics
- Graphics Morphic
- Graphics Bloc
- Canvas Cairo (Athens)
- Widgets Morphic
- Widgets Toplo
- Bridge GTK
- Widgets GTK
- Application builder
- OS Event/SDL2
- Roassal * (thanks ObjectProfile and M. Mamani)
IDE
- Test Runner
- Syntax highlighter
- Pretty printer
- Completion
- Application Packaging
- "Maven" Package Repo
- Package Manager
- Utils (Message Browser, Dependency, ProcessBrowser, Settings…)
- Code browser
- Refactoring engine
- Inspector
- Debugger
- Debugger UI
- Debugger infrastructure
- Change recorder
- Microdown Online documentation support
- GitHub File Format
- Git
- Git UI
C-libraries (libgit, ssl, ssh,...)
- Bytecode interpreter
- JIT Compilers
- Backends
- Unicorn Bridge
- Infrastructure testing (Unicorn)
- Infrastructure transpilation
- Garbage Collector
- Bench server
Infrastructure
- Launcher
- Bootstrap
- Bug tracking
- Infrastructure CI
- Facing flaky tests
- Non-standard architectures (OBS, …)
- Benchmarks
- Maintenance/update running condition
- Deployment architecture
Communication and community
- Documentation
- Books
- Consortium communication and organization
- Consortium contracting
- Discord presence
- Newsletters
- Annual Conference
- Company contacts
- Presentations at various events
- Blog posts
- Pharo article in dev forums
- Lectures
- GSOC
- Internships
Conclusion
We hope that now you see that delivering Pharo is a large task.