Description
Hi @shurcooL @hajimehoshi - just wanted to create an issue to discuss the sequencing of the various open PRs we currently have on the slate:
- [WIP] compiler: fix handling of struct, array and interface values #669: compiler: fix handling of struct, array and interface values (bug affecting the runtime-correctness of GopherJS programs)
- Embed core GopherJS packages into build system; enable vendoring of GopherJS. #787: Embed core GopherJS packages into build system; enable vendoring of GopherJS
- prelude changes:
compiler: automate regeneration of prelude #784: compiler: automate regeneration of prelude- MERGED- compiler/prelude: move prelude to separate .js files #791: compiler/prelude: move prelude to separate .js files
- compiler/prelude: format .js files using prettier #794 automates the formatting of the separate .js files
- js: add MakeFullWrapper to expose exported methods and struct fields. #790: js: auto-generate getters and setters for calls to MakeWrapper
#669 has been discussed with @neelance before and just needs a final look before it can be merged (@shurcooL is aware). As this affects runtime-correctness it's pretty important. Originally reported in #661 and most recently, independently, in #783.
There is no dependency between #787 and any of the other listed PRs so this can be reviewed and merged in parallel to anything else we choose to do.
There is also no dependency between #790 and any of the other listed PRs, so like #787 this can go in at any time, but it would probably make sense to go in after #791 (and #784) given that it again modifies the prelude.
Prelude changes
We need to make a decision on whether we merge #784, #791 and #794 or just the latter. Ultimately I think we want to get all three merged, but they are separated out per @hajimehoshi to be clear what each does; they can therefore be merged in sequence if you prefer.
compiler: automate regeneration of prelude #784 - removes the manual step of minifying the prelude by introducing- MERGEDgenmin.go
. Unminified prelude is still driven fromprelude.go
, which represents the concatenated result of other.go
parts of the prelude. Minified result is put inprelude_min.go
- compiler/prelude: move prelude to separate .js files #791 - moves the source prelude from
.go
files into.js
files.genmin.go
becomesgenprelude.go
andprelude.go
becomes a generated result, along withprelude_min.go
, ofgenprelude.go
(which does the job of concatenating the.js
files and minifying them, outputting to the appropriate file) - compiler/prelude: format .js files using prettier #794 (forked from compiler/prelude: move prelude to separate .js files #791 - diff) - automates the formatting of the
.js
prelude files (much likegofmt
automates the formatting of.go
files) viaformatjsprelude.go
Would welcome your thoughts.
Thanks