87b0dbab2d
This change adds enough functionality to compile hello world from S-expressions in a contrived way. It fails to handle this input realistically in several ways. 1) It assumes the existence of dart:core::print 2) It handles all dart values as C strings 3) It assumes only very static calls can be made with no named arguments 4) If a stack overflow is detected it just traps. 5) I'm not sure how the current dart runtime works but the contrived runtime used here puts a contrived thread object in `gs`. This change adds a basic framework for implementing new instructions that should make it possible to implement new instructions with much smaller changes however. Change-Id: Ic167a29908a875bfc234c4e9bf5f4ac2ff52a3a2 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/117222 Commit-Queue: Jake Ehrlich <jakehehrlich@google.com> Reviewed-by: Martin Kustermann <kustermann@google.com>
10 lines
234 B
Common Lisp
10 lines
234 B
Common Lisp
(function hello.dart::main
|
|
(constants
|
|
(def v2 "Hello, World!"))
|
|
(normal-entry B1)
|
|
(block B1
|
|
(CheckStackOverflow)
|
|
(PushArgument v2)
|
|
(StaticCall dart:core::print { args_len 1, env (v0 arg[0]), })
|
|
(Return v0)))
|