Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
aykevl
searching Neon…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
7 ms
·
1.
▲
by
aykevl
2y ago
M3 and M4 haven't been supported yet because they weren't a priority (looks like they've been focusing on gaming support for the last year or so). Alyssa said in her talk that they'll probably get it working in 6 months
2.
▲
by
aykevl
4y ago
I believe the video decoder (h264 etc) is actually separate from the GPU.
3.
▲
by
aykevl
4y ago
Right now we don't have any support for Android and iOS in particular, but we do support Linux/ARM (regular Linux). It's an interesting use case however. > In my understanding it supports most of the TLS stack and many oth
4.
▲
by
aykevl
4y ago
Supporting GC on WebAssembly has been a _major_ pain for TinyGo because WebAssembly doesn't allow access to the stack. It's really slow and I'm still not confident it's bug free. Having a GC integrated in WebAssembly its
5.
▲
by
aykevl
7y ago
Not on the heap, but it can certainly have uninitialized variables on the stack. These cannot be created in normal Go code but the optimizer may decide to leave some values uninitialized when it determines that this is safe to do.
6.
▲
by
aykevl
7y ago
Oops, those docs need updating. The GC now works on all platforms (including RISC-V and WebAssembly!) except for AVR because the AVR backend is just too unreliable at the moment and you wouldn't want a GC in 2kB of memory anyway.
7.
▲
by
aykevl
7y ago
That should be possible: there is also experimental AVR support. Experimental because the LLVM backend is unfortunately too buggy to be used in real programs (but is improving!). The first step to make this happen, would be to add a PIC bac
8.
▲
by
aykevl
7y ago
Hehe, LLVM takes about an hour to compile on my laptop. The compiler itself is not tiny in any way. It really refers to the size of the binaries produced which is usually very small. For example, for WebAssembly, reductions to 3% of the ori
9.
▲
by
aykevl
7y ago
The conservative mark-sweep implementation was the easiest to write: I don't think there is any real GC that is simpler. In the long term, the plan is to add other GCs that are precise and can be used in a real time context. However, n
10.
▲
by
aykevl
7y ago
There are 3 LLVM-based Go compilers that I'm aware of: gollvm, llgo, and tinygo. Of those, only TinyGo reimplements the runtime that causes lots of (code size) overhead in the other compilers. There is more to a toolchain than translat
11.
▲
by
aykevl
7y ago
https://tinygo.org/usage/important-options/ Take a look at the `-gc` flag. The values have changed in the latest version (need to update the docs!) but it does provide an option to disable the GC entirely.
12.
▲
by
aykevl
7y ago
I once asked this a cryptographer. His response was that he would do the following things (if I remember correctly): * Discuss the result with a few cryptographers he trusts, to check whether he didn't make a mistake and to make sure h
13.
▲
by
aykevl
7y ago
Yes, there is a fair bit of documentation. But it is nowhere near any popular general purposes language. Also, most documentation isn't very accessible if you're not a compiler developer already. (Note: I'm the author of the
14.
▲
by
aykevl
8y ago
I'm certainly open to PRs :) Good catch on the LICENSE file, I totally forgot about it. I've added it now.
15.
▲
by
aykevl
8y ago
That's pretty cool! If you want something now, I've also written and abandoned this: https://github.com/aykevl/tinygo-gccgo It actually worked fairly well, but the code was way too bloated to be useful.
16.
▲
by
aykevl
8y ago
Yeah the heavyweight standard library is a big problem. I'm trying to solve it (in part) with smart analysis that tries much harder to remove dead code and dead global data. Maybe even try to run some initializers at compile time so th
17.
▲
by
aykevl
8y ago
I'm using this exactly. It's not the nicest interface but it supports almost everything that LLVM does. https://github.com/llir/llvm looks nice but I don't think you can interface with LLVM from there, w
18.
▲
by
aykevl
8y ago
Hi, I'm the author of the compiler. All backends supported by LLVM should be fairly easily supported by TinyGo. In fact, I've had the blinky example running on an Arduino a while back (8-bit, 2kB RAM, 32kB flash). There is nothing