tinygo/transform
Ayke van Laethem 3d13f9cfe1 transform: show better error message in coroutines lowering
A common error is when someone tries to export a blocking function. This
is not possible with the coroutines scheduler. Previously, it resulted
in an error like this:

    panic: trying to make exported function async: messageHandler

With this change, the error is much better and shows where it comes from
exactly:

    /home/ayke/tmp/export-async.go:8: blocking operation in exported function: messageHandler

    traceback:
    messageHandler
            /home/ayke/tmp/export-async.go:9:5
    main.foo
            /home/ayke/tmp/export-async.go:15:2
    runtime.chanSend
            /home/ayke/src/github.com/tinygo-org/tinygo/src/runtime/chan.go:494:12

This should make it easier to identify and fix the problem. And it
avoids a compiler panic, which is a really bad way of showing
diagnostics.
2021-03-05 14:42:43 +01:00
..
testdata avr: properly support the .rodata section 2020-10-31 21:06:26 +01:00
allocs.go fix incorrect starting value for optimized allocations in a loop 2019-11-13 16:45:09 +01:00
allocs_test.go all: refactor heap-to-stack transform into the transform package 2019-09-15 21:26:27 +02:00
coroutines.go transform: show better error message in coroutines lowering 2021-03-05 14:42:43 +01:00
errors.go refactor coroutine lowering and tasks 2020-03-17 12:16:10 +01:00
func-lowering.go arm: automatically determine stack sizes 2020-08-27 19:23:22 +02:00
func-lowering_test.go compiler: refactor func lowering to the transform package 2019-12-04 22:19:49 +01:00
gc.go support WASI target (#1373) 2020-09-29 21:58:03 +02:00
gc_test.go compiler: move GC passes to the transform package 2019-11-25 09:14:31 +01:00
globals.go avr: properly support the .rodata section 2020-10-31 21:06:26 +01:00
globals_test.go avr: properly support the .rodata section 2020-10-31 21:06:26 +01:00
goroutine_test.go refactor coroutine lowering and tasks 2020-03-17 12:16:10 +01:00
interface-lowering.go transform: introduce check for method calls on nil interfaces 2020-05-28 13:42:36 +02:00
interface-lowering_test.go transform: replace panics with source locations 2020-03-24 15:07:55 +01:00
interrupt.go runtime/fe310: add support for PLIC interrupts 2020-01-27 19:58:39 +01:00
interrupt_test.go all: add compiler support for interrupts 2020-01-20 21:19:12 +01:00
llvm.go runtime/fe310: add support for PLIC interrupts 2020-01-27 19:58:39 +01:00
maps.go all: move OptimizeMaps to transforms and add tests 2019-09-15 21:26:27 +02:00
maps_test.go all: move OptimizeMaps to transforms and add tests 2019-09-15 21:26:27 +02:00
optimizer.go compiler: move settings to a separate Config struct 2021-01-29 14:49:58 +01:00
panic.go compiler: move ReplacePanicsWithTrap pass to transforms 2019-11-16 18:41:28 +01:00
panic_test.go compiler: move ReplacePanicsWithTrap pass to transforms 2019-11-16 18:41:28 +01:00
reflect.go transform: make reflection sidetables constant globals 2019-12-21 22:59:23 +01:00
stacksize.go arm: automatically determine stack sizes 2020-08-27 19:23:22 +02:00
stacksize_test.go arm: automatically determine stack sizes 2020-08-27 19:23:22 +02:00
stringtobytes.go compiler: move OptimizeStringToBytes to transform package 2019-09-22 08:25:50 +02:00
stringtobytes_test.go compiler: move OptimizeStringToBytes to transform package 2019-09-22 08:25:50 +02:00
transform.go all: refactor heap-to-stack transform into the transform package 2019-09-15 21:26:27 +02:00
transform_test.go main: add initial support for (in-development) LLVM 11 2020-10-13 20:23:50 +02:00
util.go compiler: move OptimizeStringToBytes to transform package 2019-09-22 08:25:50 +02:00
wasm-abi.go transform: wasm-abi: create temporary allocas in the entry block 2020-01-28 19:29:09 +01:00
wasm-abi_test.go compiler: move wasm ABI workaround to transform package 2020-01-28 19:29:09 +01:00