dqneo / minigo Goto Github PK
View Code? Open in Web Editor NEWminigo🐥is a small Go compiler made from scratch. It can compile itself.
License: MIT License
minigo🐥is a small Go compiler made from scratch. It can compile itself.
License: MIT License
Currently, only single file is allowed in std (and other foreign) packages.
We need to improve it.
We should use gtype.getKind()
instead.
as in the gc.
Currently, parser ignores directory parts in the import path.
So we cannot use a path like github.com/minigo/
To implement "go get" or to invoke assembler and linker
Hi @DQNEO!
The mini Go compiler looks like a very interesting project. I wanted to take it out for a spin, but ran into the follow error when running go get
:
u@x1 ~> go get github.com/DQNEO/minigo
# github.com/DQNEO/minigo
goget/src/github.com/DQNEO/minigo/main.go:106:54: undefined: internalRuntimeCode
goget/src/github.com/DQNEO/minigo/main.go:118:14: undefined: stdPkgs
Cheers,
Robin
Current Implementation is poor.
It's terrible now.
https://godoc.org/github.com/DQNEO/minigo
1. return an struct pointer in a function which returns an interface
I liked to have std packages as strings , mainly for portability.
By this design the compiled binary work in any directory without minigo source code.
But I think no one has cared about portability of minigo, and this leads to additional complexity by requiring special treatments for std packages.
I decide to change this design.
Separate assembly files like C
for _, v := range []byte("foo")
This does not work yet.
Something like
assertNotReached(node.token())
c.f. https://webkit.org/blog/5397/a-guide-to-assertion-macros-in-webkit/
Currently, I'm afraid we cannot use interface of foreign (which means out of main) packages.
IrInterfaceMethodCall.emitMethodCall and IrStaticCall.emit should be DRYied.
Logic of passing various arguments to interface methods is broken.
System call (brk?) should be called.
an issue I found when I converted cstring to gostring around for labels.
It's waste of time.
Stop calling libc's printf
Currently, the dependency graph is hard coded in builder.go
Line 9 in 9d13f25
We should do this automatically.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.