Compare commits

..

11 Commits

Author SHA1 Message Date
e801170496 1.3.3 2019-02-15 09:49:34 +00:00
91e7c9c5ad Make Rust rotate code smaller (#462)
* Make Rust rotate code smaller

* Back on the rust happy path
2019-02-15 09:47:26 +00:00
ca5162ed32 Updating package lock to fix Netlify 2019-02-13 15:08:56 +00:00
0bf87d0c87 Merge pull request #461 from GoogleChromeLabs/renovate/node-10.x
Update dependency @types/node to v10.12.26
2019-02-13 14:02:00 +00:00
ce91eb5bae Update dependency @types/node to v10.12.26 2019-02-13 00:00:41 +00:00
8d68056bca Merge pull request #457 from GoogleChromeLabs/renovate/chokidar-2.x
Update dependency chokidar to v2.1.1
2019-02-12 13:24:03 +00:00
d0de8e444a Update dependency chokidar to v2.1.1 2019-02-12 12:17:17 +00:00
dfef1f21cc Merge pull request #455 from GoogleChromeLabs/renovate/node-10.x
Update dependency @types/node to v10.12.25
2019-02-12 12:16:17 +00:00
2440ac4e87 Update dependency @types/node to v10.12.25 2019-02-12 11:09:55 +00:00
e90db78697 Merge pull request #459 from GoogleChromeLabs/renovate/webpack-bundle-analyzer-3.x
Update dependency webpack-bundle-analyzer to v3.0.4
2019-02-12 11:09:08 +00:00
5ae15d429c Update dependency webpack-bundle-analyzer to v3.0.4 2019-02-12 10:54:25 +00:00
7 changed files with 320 additions and 193 deletions

2
codecs/rotate/.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
target
Cargo.lock

14
codecs/rotate/Cargo.toml Normal file
View File

@ -0,0 +1,14 @@
[package]
name = "rotate"
version = "0.1.0"
authors = ["Surma <surma@google.com>"]
edition = "2018"
[lib]
name = "rotate"
path = "rotate.rs"
crate-type = ["cdylib", "rlib"]
[profile.release]
lto = true
opt-level = "s"

View File

@ -7,12 +7,11 @@ echo "Compiling wasm"
echo "============================================="
(
rustup run nightly \
rustc \
--target=wasm32-unknown-unknown \
-C opt-level=3 \
-o rotate.wasm \
rotate.rs
wasm-strip rotate.wasm
cargo build \
--target wasm32-unknown-unknown \
--release
cp target/wasm32-unknown-unknown/release/rotate.wasm .
wasm-strip rotate.wasm
)
echo "============================================="
echo "Compiling wasm done"

View File

@ -1,8 +1,22 @@
#![no_std]
#![no_main]
use std::slice::from_raw_parts_mut;
use core::panic::PanicInfo;
use core::slice::from_raw_parts_mut;
// This function is taken from
// https://rustwasm.github.io/book/reference/code-size.html
#[cfg(not(debug_assertions))]
#[inline]
pub fn unwrap_abort<T>(o: Option<T>) -> T {
use std::process;
match o {
Some(t) => t,
None => process::abort(),
}
}
// Normal panic-y behavior for debug builds
#[cfg(debug_assertions)]
unsafe fn unchecked_unwrap<T>(o: Option<T>) -> T {
o.unwrap()
}
#[no_mangle]
fn rotate(input_width: isize, input_height: isize, rotate: isize) {
@ -69,13 +83,8 @@ fn rotate(input_width: isize, input_height: isize, rotate: isize) {
for d2 in 0..d2_limit {
for d1 in 0..d1_limit {
let in_idx = (d1_start + d1 * d1_advance) * d1_multiplier + (d2_start + d2 * d2_advance) * d2_multiplier;
out_b[i as usize] = in_b[in_idx as usize];
*unwrap_abort(out_b.get_mut(i as usize)) = *unwrap_abort(in_b.get(in_idx as usize));
i += 1;
}
}
}
#[panic_handler]
fn panic(_info: &PanicInfo) -> ! {
loop {}
}

Binary file not shown.

449
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
{
"private": true,
"name": "squoosh",
"version": "1.3.2",
"version": "1.3.3",
"license": "apache-2.0",
"scripts": {
"start": "webpack-dev-server --host 0.0.0.0 --hot",
@ -16,13 +16,13 @@
}
},
"devDependencies": {
"@types/node": "10.12.23",
"@types/node": "10.12.26",
"@types/pretty-bytes": "5.1.0",
"@types/webassembly-js-api": "0.0.2",
"@webcomponents/custom-elements": "1.2.1",
"@webpack-cli/serve": "0.1.3",
"assets-webpack-plugin": "3.9.7",
"chokidar": "2.1.0",
"chokidar": "2.1.1",
"chalk": "2.4.2",
"classnames": "2.2.6",
"clean-webpack-plugin": "1.0.1",
@ -67,7 +67,7 @@
"typescript": "3.2.4",
"url-loader": "1.1.2",
"webpack": "4.28.0",
"webpack-bundle-analyzer": "3.0.3",
"webpack-bundle-analyzer": "3.0.4",
"webpack-cli": "3.2.3",
"webpack-dev-server": "3.1.14",
"worker-plugin": "3.0.0"