Entry point for TARDIS Go

29 views
Skip to first unread message

Elliott Stoneham

unread,
May 29, 2014, 2:27:37 AM5/29/14
to tard...@googlegroups.com
This post is a copy of answers to questions in reply to e-mails from Axel, who lives in France:

The project is called "TARDIS Go" because of the TV sci-fi show "Doctor Who" 
(http://fr.wikipedia.org/wiki/Doctor_Who) which I watched when I was a boy. I explained it all in a blog post here: http://blog.gopheracademy.com/day-08-dr-who-and-the-mutant-go-compilers

The entry point for tardisgo is the main() function in file ssadump_copy.go in the root directory. 
I'm sorry that the documentation is not clear, I've added an issue to the project to remind me to fix it!

On line 304 of the ssadump_copy.go file is the line:
err = pogo.EntryPoint(main) // TARDIS Go entry point, returns an error

That is the main entry point into the code written to generate Haxe code from the SSA form (http://fr.wikipedia.org/wiki/Static_single_assignment_form).

The "pogo" package is intended to be common to all target languages, but the "haxe" package is particular to Haxe.
--- 
The settings for  "pogo.LanguageList[pogo.TargetLang]" are made in file "haxe/base.go" on line 37 inside the init() function, which Go automatically runs before all other code.

Yes the generated Haxe is huge, there is a lot of work that can be done to reduce its size and I'm actively thinking about how best to do it, especially with regard to how to improve compilation times.

The Go standard libraries implement some low-level functions in C or assembler, rather than in Go. The purpose of golibruntime is to provide Go implementations of these functions, maybe with calls to Haxe as required.

Reply all
Reply to author
Forward
0 new messages