Commit Graph

39 Commits

Author SHA1 Message Date
d9cf9b3735 Bump to version 0.2.35 2019-02-12 11:36:19 -08:00
078257943d Bump to 0.2.34 2019-02-11 18:58:54 -08:00
78c4075e40 Bump to 0.2.33 2019-01-18 15:32:17 -08:00
31fdede9fc Bump to 0.2.32 2019-01-16 13:11:13 -08:00
b04f60cf2b Bump to 0.2.31 2019-01-09 09:17:50 -08:00
fbf000a508 Bump to 0.2.30 2019-01-07 07:47:07 -08:00
63e3ba722d Bump to 0.2.29 2018-12-04 06:04:47 -08:00
22ca15f81e Bump to 0.2.28 2018-11-12 09:28:01 -08:00
6dfbb4be89 Bump to 0.2.27 2018-10-29 14:30:33 -07:00
7fad2bf0c8 Bump to 0.2.26 2018-10-29 12:56:37 -07:00
f749c7cf95 Don't use JSON for custom section format
This commit migrates away from using Serde for the custom section in
wasm executables. This is a refactoring of a purely-internal data
structure to `wasm-bindgen` and should have no visible functional change
on users.

The motivation for this commit is two fold:

* First, the compile times using `serde_json` and `serde_derive` for the
  syntax extension isn't the most fun.
* Second, eventually we're going to want to stablize the layout of the
  custom section, and it's highly unlikely to be json!

Primarily, though, the intention of this commit is to improve the
cold-cache compile time of `wasm-bindgen` by ensuring that for new users
this project builds as quickly as possible. By removing some heavyweight
dependencies from the procedural macro, `serde`, `serde_derive`, and
`serde_json`, we're able to get a pretty nice build time improvement for
the `wasm-bindgen` crate itself:

|             | single-core build | parallel build |
|-------------|-------------------|----------------|
| master      |             36.5s |          17.3s |
| this commit |             20.5s |          11.8s |

These are't really end-all-be-all wins but they're much better
especially on the spectrum of weaker CPUs (in theory modeled by the
single-core case showing we have 42% less CPU work in theory).
2018-10-12 11:23:00 -07:00
dd82a3e134 Bump to 0.2.25 2018-10-10 13:19:40 -07:00
c210ccd596 Bump to 0.2.24 2018-10-05 09:53:19 -07:00
f834a427d7 Bump to version 0.2.23 (and js-sys and wasm-bindgen-futures to 0.3.0) 2018-09-26 07:31:54 -07:00
51ec485c94 Bump to 0.2.22 2018-09-21 13:41:58 -07:00
f18b10ca52 Bump to 0.2.21 2018-09-06 22:10:11 -07:00
9d5898ab48 Bump to 0.2.20 2018-09-06 14:49:43 -07:00
d9bc0a3176 Bump to 0.2.19 2018-08-27 13:39:23 -07:00
98008b9e77 Bump to 0.2.18
At the same time, also add a `publish.rs` script to ease our publishing woes.
2018-08-27 13:37:55 -07:00
57693ee11a Bump to 0.2.17 2018-08-16 23:36:42 -07:00
8974a57fb9 Bump to version 0.2.16 2018-08-13 14:27:10 -07:00
9a0470b1c4 Bump to 0.2.15 2018-07-26 14:53:59 -07:00
3f5a0fb31c Bump to 0.2.14 2018-07-25 09:46:45 -07:00
82c2dfa7b2 Bump to 0.2.13 (#536) 2018-07-21 23:10:47 -05:00
aa348f963f Bump to 0.2.12 (#515)
* Bump to 0.2.12

* Update all version numbers and deps
* Update all listed authors to `["The wasm-bindgen Developers"]`
* Update `repository` links to specific paths for each crate
* Update `homepage` links to the online book
* Update all links away from `alexcrichton/wasm-bindgen`
* Add `#[doc]` directives for HTML URLs

* Update more version requirements

* Fill out CHANGELOG
2018-07-19 14:57:04 -05:00
4c27c349ea Bump to 0.2.11 2018-05-24 08:56:28 -07:00
627ca1d638 Bump to 0.2.10 2018-05-17 10:40:24 -07:00
5d28b90069 Bump to 0.2.9 2018-05-11 16:04:41 -07:00
fbb12f519b Bump to 0.2.8 2018-04-30 19:23:44 -07:00
befdf07a07 Bump to 0.2.7 2018-04-27 19:48:57 -07:00
acb5eac96a Bump to 0.2.6 2018-04-26 19:14:09 -07:00
3b4bf475be Bump to 0.2.5 2018-04-19 18:46:41 -07:00
055a8fb803 Bump to 0.2.4 2018-04-18 07:18:11 -07:00
c74230b4a9 Bump to 0.2.3 2018-04-17 13:07:43 -07:00
3305621012 Overhaul how type information gets to the CLI
This commit is a complete overhaul of how the `#[wasm_bindgen]` macro
communicates type information to the CLI tool, and it's done in a somewhat...
unconventional fashion.

Today we've got a problem where the generated JS needs to understand the types
of each function exported or imported. This understanding is what enables it to
generate the appropriate JS wrappers and such. We want to, however, be quite
flexible and extensible in types that are supported across the boundary, which
means that internally we rely on the trait system to resolve what's what.

Communicating the type information historically was done by creating a four byte
"descriptor" and using associated type projections to communicate that to the
CLI tool. Unfortunately four bytes isn't a lot of space to cram information like
arguments to a generic function, tuple types, etc. In general this just wasn't
flexible enough and the way custom references were treated was also already a
bit of a hack.

This commit takes a radical step of creating a **descriptor function** for each
function imported/exported. The really crazy part is that the `wasm-bindgen` CLI
tool now embeds a wasm interpreter and executes these functions when the CLI
tool is invoked. By allowing arbitrary functions to get executed it's now *much*
easier to inform `wasm-bindgen` about complicated structures of types. Rest
assured though that all these descriptor functions are automatically unexported
and gc'd away, so this should not have any impact on binary sizes

A new internal trait, `WasmDescribe`, is added to represent a description of all
types, sort of like a serialization of the structure of a type that
`wasm-bindgen` can understand. This works by calling a special exported function
with a `u32` value a bunch of times. This means that when we run a descriptor we
effectively get a `Vec<u32>` in the `wasm-bindgen` CLI tool. This list of
integers can then be parsed into a rich `enum` for the JS generation to work
with.

This commit currently only retains feature parity with the previous
implementation. I hope to soon solve issues like #123, #104, and #111 with this
support.
2018-04-14 11:15:28 -07:00
eb9a6524b9 Bump to 0.2.2 2018-04-13 07:50:24 -07:00
60ac57331b Bump to 0.2.1 2018-04-09 15:18:39 -07:00
30b1964255 Bump all crates to 0.2 2018-04-03 07:10:07 -07:00
393841779a Rename directories to remove "wasm-bindgen-" prefix in sub-crates 2018-03-29 08:28:25 -07:00