A compiler that compiles Haxe code into Golang using Reflaxe.
- Go-sharp: Once mature enough and easier to write than ancient Golang.
- Great Performance vs. GC Balance
- Excellent Solid Tooling
- Faster Compilation than C++
- Truly Cross-Platform (Windows, Linux, BSD, WASM, AVR, etc.)
- Numerous Backend Libraries
- Collaboration with
go2hx
- Static Binaries Easily Portable Between Distributions (Hardware Match Needed)
- Go Routines (Supports Haxe's Sync Nature)
- High-Speed Web Frameworks
- Real Readable Output
- Ensure go 1.20 is installed (1.18 for generics, 1.20 for random generator)
- Clone the repository using
haxelib
, or download locally and use withhaxelib/lix dev
. - Add a reference to the library:
-L reflaxe_go
. - Update the path to
go_imports.exe
inGenerator.hx
or define-D goimports
in your HXML. (This is no longer required, it will install automatically, thanks to commit) - Add
-D go-output=haxe_out
(or any subfolder you like).- Note: Currently, it will not generate a Go main function. You must create a
main.go
in your Haxe root directory and call the necessary main function.
- Note: Currently, it will not generate a Go main function. You must create a
- Add a matching
-D pkg=haxe_out
. - Run
haxe your.hxml
.
- Real Generics (Array Methods)
- String Interpolation
- Everything is an Expression
- Static Extensions
- Real Dynamics (When Needed)
- Pattern Matching
- Familiarity with EcmaScript (through JavaScript)
- Slim Client-Side Code Sharing (vs. Gopher/WASM)
- Enums: ADT
- Dynamic Methods
- Struct Field Initializers
- Support Class Blacklist via Config File
- Allow Explicit
goimports
via Meta Json.parse
is Generic, Not Dynamic (Type Inferences) Currently there is aseperate class haxe.Json2, you can use it asimport haxe.Json2 as Json
- Lang.go(()->{})
to call as go routine
- Supporting Multi-Return Like Lua
- Full Reflection Support (Record-Macros and Typed JSON)
- Support context aware expression generation SomeRanDev/reflaxe#28
- Support Enums Reusing Same Parameter Name with Other Types (most common issue so far)
- Implement enough for go_imports to work with go2hx (https://github.com/go2hx/go2hx)
- Implement full non sys std
- Implement full full sys.io.File and sys.FileSystem
- Implement full sys.net
- Implement full sys.db
- Implement full sys
- Unit tests
- Document usage
- Document metas
- Document defines
- Automatic
go_imports
installation - Automatic
main.go
creation - Build a Beginner-Friendly Website for Golang Experts
- go extern creator.
- naive go class translator.
-
smartDCE
Removes the Timer Class Even When Used
CC-BY-NC-ND
Creative Commons, Not commercial use, Must Attribute, ND
Creating a successful compiler project is challenging due to the need for stability and widespread adoption. The complexity often leads to abandonment before reaching a usable state.
Offer early commercial users the ability to advance the roadmap by contributing code or donations. In exchange, feature their names and corporations prominently on the project front page for future generations. Provide binary exponential leverage to early contributors (e.g., the first milestone finishers' names in 64pt font, the next in 32pt, etc.). Developers receive a commercial non-distributing usage license. Proposals for new milestones can be voted on by all current developers, and resolving 10 issues counts as a milestone. Once complete, the work will be released under a common open-source license (MIT, GPL, or similar) based on a developer vote and legal options.
- Reflaxe Project
- Pinchas Neiman (Go Target)
- Great Commentors in prototype project neimanpinchas/haxego#3
Joey (PXShadow) https://github.com/PXshadow
[Your Name Here]
[Your Name Here]