Closed riverfr0zen closed 2 years ago
Update: Actually the error occurs regardless of whether the app sends logs or not. I had just missed it earlier.
Interesting, I cannot reproduce it on Chrome + Mac. What browser are you using? I can try to test it on an ArchLinux and if I have no luck I guess I'll try to install Ubuntu too. Can you also share your index.html? This error should happen only by the internal lib that formats the logs when it's initialized twice, so it's really weird behavior.
Thanks!
I'm using Chrome Version 106.0.5249.119
wasm-bindgen is 0.2.83
The HTML is from the README, with minor style changes:
<html>
<head>
<title>Notan App</title>
<meta content="text/html;charset=utf-8" http-equiv="Content-Type"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport"
content="minimal-ui, width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<meta name="apple-mobile-web-app-capable" content="yes">
<style>
body {
background-color: white;
margin: 0 !important;
padding: 0 !important;
border: 0px;
height: 100%;
/* overflow: hidden; */
}
</style>
</head>
<body>
<script type="module">
import init from './wasms/eg_notan.js'; // replace this
let module = await init();
module.notan_main();
</script>
<div id="examples">
<canvas id="notan_canvas"></canvas>
</div>
</body>
Output of cargo tree
:
└── notan v0.7.1
├── notan_app v0.7.1
│ ├── bytemuck v1.12.1
│ ├── downcast-rs v1.2.0
│ ├── futures v0.3.24
│ │ ├── futures-channel v0.3.24
│ │ │ ├── futures-core v0.3.24
│ │ │ └── futures-sink v0.3.24
│ │ ├── futures-core v0.3.24
│ │ ├── futures-executor v0.3.24
│ │ │ ├── futures-core v0.3.24
│ │ │ ├── futures-task v0.3.24
│ │ │ └── futures-util v0.3.24
│ │ │ ├── futures-channel v0.3.24 (*)
│ │ │ ├── futures-core v0.3.24
│ │ │ ├── futures-io v0.3.24
│ │ │ ├── futures-macro v0.3.24 (proc-macro)
│ │ │ │ ├── proc-macro2 v1.0.46
│ │ │ │ │ └── unicode-ident v1.0.5
│ │ │ │ ├── quote v1.0.21
│ │ │ │ │ └── proc-macro2 v1.0.46 (*)
│ │ │ │ └── syn v1.0.102
│ │ │ │ ├── proc-macro2 v1.0.46 (*)
│ │ │ │ ├── quote v1.0.21 (*)
│ │ │ │ └── unicode-ident v1.0.5
│ │ │ ├── futures-sink v0.3.24
│ │ │ ├── futures-task v0.3.24
│ │ │ ├── memchr v2.5.0
│ │ │ ├── pin-project-lite v0.2.9
│ │ │ ├── pin-utils v0.1.0
│ │ │ └── slab v0.4.7
│ │ │ [build-dependencies]
│ │ │ └── autocfg v1.1.0
│ │ ├── futures-io v0.3.24
│ │ ├── futures-sink v0.3.24
│ │ ├── futures-task v0.3.24
│ │ └── futures-util v0.3.24 (*)
│ ├── hashbrown v0.12.3
│ │ └── ahash v0.7.6
│ │ ├── getrandom v0.2.7
│ │ │ ├── cfg-if v1.0.0
│ │ │ └── libc v0.2.135
│ │ └── once_cell v1.15.0
│ │ [build-dependencies]
│ │ └── version_check v0.9.4
│ ├── indexmap v1.9.1
│ │ └── hashbrown v0.12.3 (*)
│ │ [build-dependencies]
│ │ └── autocfg v1.1.0
│ ├── log v0.4.17
│ │ └── cfg-if v1.0.0
│ ├── notan_core v0.7.1
│ ├── notan_graphics v0.7.1
│ │ ├── bytemuck v1.12.1
│ │ ├── glsl-layout v0.4.2
│ │ │ ├── glam v0.21.3
│ │ │ │ └── bytemuck v1.12.1
│ │ │ └── glsl-layout-derive v0.4.0 (proc-macro)
│ │ │ ├── proc-macro2 v1.0.46 (*)
│ │ │ ├── quote v1.0.21 (*)
│ │ │ └── syn v1.0.102 (*)
│ │ ├── image v0.24.4
│ │ │ ├── bytemuck v1.12.1
│ │ │ ├── byteorder v1.4.3
│ │ │ ├── color_quant v1.1.0
│ │ │ ├── jpeg-decoder v0.2.6
│ │ │ ├── num-rational v0.4.1
│ │ │ │ ├── num-integer v0.1.45
│ │ │ │ │ └── num-traits v0.2.15
│ │ │ │ │ [build-dependencies]
│ │ │ │ │ └── autocfg v1.1.0
│ │ │ │ │ [build-dependencies]
│ │ │ │ │ └── autocfg v1.1.0
│ │ │ │ └── num-traits v0.2.15 (*)
│ │ │ │ [build-dependencies]
│ │ │ │ └── autocfg v1.1.0
│ │ │ ├── num-traits v0.2.15 (*)
│ │ │ └── png v0.17.6
│ │ │ ├── bitflags v1.3.2
│ │ │ ├── crc32fast v1.3.2
│ │ │ │ └── cfg-if v1.0.0
│ │ │ ├── flate2 v1.0.24
│ │ │ │ ├── crc32fast v1.3.2 (*)
│ │ │ │ └── miniz_oxide v0.5.4
│ │ │ │ └── adler v1.0.2
│ │ │ └── miniz_oxide v0.5.4 (*)
│ │ ├── notan_macro v0.7.1 (proc-macro)
│ │ │ ├── glsl-to-spirv v0.1.7
│ │ │ │ └── tempfile v3.3.0
│ │ │ │ ├── cfg-if v1.0.0
│ │ │ │ ├── fastrand v1.8.0
│ │ │ │ ├── libc v0.2.135
│ │ │ │ └── remove_dir_all v0.5.3
│ │ │ │ [build-dependencies]
│ │ │ │ ├── cmake v0.1.48
│ │ │ │ │ └── cc v1.0.73
│ │ │ │ │ └── jobserver v0.1.25
│ │ │ │ │ └── libc v0.2.135
│ │ │ │ └── sha2 v0.7.1
│ │ │ │ ├── block-buffer v0.3.3
│ │ │ │ │ ├── arrayref v0.3.6
│ │ │ │ │ └── byte-tools v0.2.0
│ │ │ │ ├── byte-tools v0.2.0
│ │ │ │ ├── digest v0.7.6
│ │ │ │ │ └── generic-array v0.9.1
│ │ │ │ │ └── typenum v1.15.0
│ │ │ │ └── fake-simd v0.1.2
│ │ │ ├── num v0.4.0
│ │ │ │ ├── num-bigint v0.4.3
│ │ │ │ │ ├── num-integer v0.1.45
│ │ │ │ │ │ └── num-traits v0.2.15
│ │ │ │ │ │ [build-dependencies]
│ │ │ │ │ │ └── autocfg v1.1.0
│ │ │ │ │ │ [build-dependencies]
│ │ │ │ │ │ └── autocfg v1.1.0
│ │ │ │ │ └── num-traits v0.2.15 (*)
│ │ │ │ │ [build-dependencies]
│ │ │ │ │ └── autocfg v1.1.0
│ │ │ │ ├── num-complex v0.4.2
│ │ │ │ │ └── num-traits v0.2.15 (*)
│ │ │ │ ├── num-integer v0.1.45 (*)
│ │ │ │ ├── num-iter v0.1.43
│ │ │ │ │ ├── num-integer v0.1.45 (*)
│ │ │ │ │ └── num-traits v0.2.15 (*)
│ │ │ │ │ [build-dependencies]
│ │ │ │ │ └── autocfg v1.1.0
│ │ │ │ ├── num-rational v0.4.1
│ │ │ │ │ ├── num-bigint v0.4.3 (*)
│ │ │ │ │ ├── num-integer v0.1.45 (*)
│ │ │ │ │ └── num-traits v0.2.15 (*)
│ │ │ │ │ [build-dependencies]
│ │ │ │ │ └── autocfg v1.1.0
│ │ │ │ └── num-traits v0.2.15 (*)
│ │ │ ├── proc-macro2 v1.0.46 (*)
│ │ │ ├── quote v1.0.21 (*)
│ │ │ ├── spirv_cross v0.23.1
│ │ │ │ [build-dependencies]
│ │ │ │ └── cc v1.0.73 (*)
│ │ │ └── syn v1.0.102 (*)
│ │ ├── notan_math v0.7.1
│ │ │ └── glam v0.21.3 (*)
│ │ ├── notan_utils v0.7.1
│ │ │ ├── instant v0.1.12
│ │ │ │ └── cfg-if v1.0.0
│ │ │ └── log v0.4.17 (*)
│ │ └── parking_lot v0.12.1
│ │ ├── lock_api v0.4.9
│ │ │ └── scopeguard v1.1.0
│ │ │ [build-dependencies]
│ │ │ └── autocfg v1.1.0
│ │ └── parking_lot_core v0.9.3
│ │ ├── cfg-if v1.0.0
│ │ ├── libc v0.2.135
│ │ └── smallvec v1.10.0
│ ├── notan_input v0.7.1
│ │ ├── hashbrown v0.12.3 (*)
│ │ ├── log v0.4.17 (*)
│ │ ├── notan_core v0.7.1
│ │ └── notan_math v0.7.1 (*)
│ ├── notan_macro v0.7.1 (proc-macro) (*)
│ ├── notan_math v0.7.1 (*)
│ ├── notan_utils v0.7.1 (*)
│ ├── parking_lot v0.12.1 (*)
│ └── platter2 v0.1.6
│ └── futures-util v0.3.24 (*)
├── notan_backend v0.7.1
│ └── notan_winit v0.7.1
│ ├── glutin v0.29.1
│ │ ├── glutin_egl_sys v0.1.6
│ │ │ [build-dependencies]
│ │ │ └── gl_generator v0.14.0
│ │ │ ├── khronos_api v3.1.0
│ │ │ ├── log v0.4.17
│ │ │ │ └── cfg-if v1.0.0
│ │ │ └── xml-rs v0.8.4
│ │ ├── glutin_glx_sys v0.1.8
│ │ │ └── x11-dl v2.20.0
│ │ │ ├── lazy_static v1.4.0
│ │ │ └── libc v0.2.135
│ │ │ [build-dependencies]
│ │ │ └── pkg-config v0.3.25
│ │ │ [build-dependencies]
│ │ │ └── gl_generator v0.14.0 (*)
│ │ ├── libloading v0.7.3
│ │ │ └── cfg-if v1.0.0
│ │ ├── log v0.4.17 (*)
│ │ ├── once_cell v1.15.0
│ │ ├── osmesa-sys v0.1.2
│ │ │ └── shared_library v0.1.9
│ │ │ ├── lazy_static v1.4.0
│ │ │ └── libc v0.2.135
│ │ ├── parking_lot v0.12.1 (*)
│ │ ├── wayland-client v0.29.5
│ │ │ ├── bitflags v1.3.2
│ │ │ ├── downcast-rs v1.2.0
│ │ │ ├── libc v0.2.135
│ │ │ ├── nix v0.24.2
│ │ │ │ ├── bitflags v1.3.2
│ │ │ │ ├── cfg-if v1.0.0
│ │ │ │ ├── libc v0.2.135
│ │ │ │ └── memoffset v0.6.5
│ │ │ │ [build-dependencies]
│ │ │ │ └── autocfg v1.1.0
│ │ │ ├── scoped-tls v1.0.0
│ │ │ ├── wayland-commons v0.29.5
│ │ │ │ ├── nix v0.24.2 (*)
│ │ │ │ ├── once_cell v1.15.0
│ │ │ │ ├── smallvec v1.10.0
│ │ │ │ └── wayland-sys v0.29.5
│ │ │ │ ├── dlib v0.5.0
│ │ │ │ │ └── libloading v0.7.3 (*)
│ │ │ │ └── lazy_static v1.4.0
│ │ │ │ [build-dependencies]
│ │ │ │ └── pkg-config v0.3.25
│ │ │ └── wayland-sys v0.29.5 (*)
│ │ │ [build-dependencies]
│ │ │ └── wayland-scanner v0.29.5
│ │ │ ├── proc-macro2 v1.0.46 (*)
│ │ │ ├── quote v1.0.21 (*)
│ │ │ └── xml-rs v0.8.4
│ │ ├── wayland-egl v0.29.5
│ │ │ ├── wayland-client v0.29.5 (*)
│ │ │ └── wayland-sys v0.29.5 (*)
│ │ └── winit v0.27.4
│ │ ├── bitflags v1.3.2
│ │ ├── instant v0.1.12 (*)
│ │ ├── libc v0.2.135
│ │ ├── log v0.4.17 (*)
│ │ ├── mio v0.8.4
│ │ │ ├── libc v0.2.135
│ │ │ └── log v0.4.17 (*)
│ │ ├── once_cell v1.15.0
│ │ ├── parking_lot v0.12.1 (*)
│ │ ├── percent-encoding v2.2.0
│ │ ├── raw-window-handle v0.4.3
│ │ │ └── cty v0.2.2
│ │ ├── raw-window-handle v0.5.0
│ │ │ └── cty v0.2.2
│ │ ├── sctk-adwaita v0.4.2
│ │ │ ├── crossfont v0.5.0
│ │ │ │ ├── foreign-types v0.5.0
│ │ │ │ │ ├── foreign-types-macros v0.2.2 (proc-macro)
│ │ │ │ │ │ ├── proc-macro2 v1.0.46 (*)
│ │ │ │ │ │ ├── quote v1.0.21 (*)
│ │ │ │ │ │ └── syn v1.0.102 (*)
│ │ │ │ │ └── foreign-types-shared v0.3.1
│ │ │ │ ├── freetype-rs v0.26.0
│ │ │ │ │ ├── bitflags v1.3.2
│ │ │ │ │ ├── freetype-sys v0.13.1
│ │ │ │ │ │ └── libc v0.2.135
│ │ │ │ │ │ [build-dependencies]
│ │ │ │ │ │ ├── cmake v0.1.48 (*)
│ │ │ │ │ │ └── pkg-config v0.3.25
│ │ │ │ │ └── libc v0.2.135
│ │ │ │ ├── libc v0.2.135
│ │ │ │ ├── log v0.4.17 (*)
│ │ │ │ └── servo-fontconfig v0.5.1
│ │ │ │ ├── libc v0.2.135
│ │ │ │ └── servo-fontconfig-sys v5.1.0
│ │ │ │ ├── expat-sys v2.1.6
│ │ │ │ │ [build-dependencies]
│ │ │ │ │ ├── cmake v0.1.48 (*)
│ │ │ │ │ └── pkg-config v0.3.25
│ │ │ │ └── freetype-sys v0.13.1 (*)
│ │ │ │ [build-dependencies]
│ │ │ │ └── pkg-config v0.3.25
│ │ │ │ [build-dependencies]
│ │ │ │ └── pkg-config v0.3.25
│ │ │ ├── log v0.4.17 (*)
│ │ │ ├── smithay-client-toolkit v0.16.0
│ │ │ │ ├── bitflags v1.3.2
│ │ │ │ ├── calloop v0.10.1
│ │ │ │ │ ├── log v0.4.17 (*)
│ │ │ │ │ ├── nix v0.24.2 (*)
│ │ │ │ │ ├── slotmap v1.0.6
│ │ │ │ │ │ [build-dependencies]
│ │ │ │ │ │ └── version_check v0.9.4
│ │ │ │ │ ├── thiserror v1.0.37
│ │ │ │ │ │ └── thiserror-impl v1.0.37 (proc-macro)
│ │ │ │ │ │ ├── proc-macro2 v1.0.46 (*)
│ │ │ │ │ │ ├── quote v1.0.21 (*)
│ │ │ │ │ │ └── syn v1.0.102 (*)
│ │ │ │ │ └── vec_map v0.8.2
│ │ │ │ ├── dlib v0.5.0 (*)
│ │ │ │ ├── lazy_static v1.4.0
│ │ │ │ ├── log v0.4.17 (*)
│ │ │ │ ├── memmap2 v0.5.7
│ │ │ │ │ └── libc v0.2.135
│ │ │ │ ├── nix v0.24.2 (*)
│ │ │ │ ├── wayland-client v0.29.5 (*)
│ │ │ │ ├── wayland-cursor v0.29.5
│ │ │ │ │ ├── nix v0.24.2 (*)
│ │ │ │ │ ├── wayland-client v0.29.5 (*)
│ │ │ │ │ └── xcursor v0.3.4
│ │ │ │ │ └── nom v7.1.1
│ │ │ │ │ ├── memchr v2.5.0
│ │ │ │ │ └── minimal-lexical v0.2.1
│ │ │ │ └── wayland-protocols v0.29.5
│ │ │ │ ├── bitflags v1.3.2
│ │ │ │ ├── wayland-client v0.29.5 (*)
│ │ │ │ └── wayland-commons v0.29.5 (*)
│ │ │ │ [build-dependencies]
│ │ │ │ └── wayland-scanner v0.29.5 (*)
│ │ │ │ [build-dependencies]
│ │ │ │ └── pkg-config v0.3.25
│ │ │ └── tiny-skia v0.7.0
│ │ │ ├── arrayref v0.3.6
│ │ │ ├── arrayvec v0.5.2
│ │ │ ├── bytemuck v1.12.1
│ │ │ ├── cfg-if v1.0.0
│ │ │ ├── png v0.17.6 (*)
│ │ │ ├── safe_arch v0.5.2
│ │ │ │ └── bytemuck v1.12.1
│ │ │ └── tiny-skia-path v0.7.0
│ │ │ ├── arrayref v0.3.6
│ │ │ └── bytemuck v1.12.1
│ │ ├── smithay-client-toolkit v0.16.0 (*)
│ │ ├── wayland-client v0.29.5 (*)
│ │ ├── wayland-protocols v0.29.5 (*)
│ │ └── x11-dl v2.20.0 (*)
│ ├── log v0.4.17 (*)
│ ├── notan_app v0.7.1 (*)
│ ├── notan_core v0.7.1
│ └── notan_glow v0.7.1
│ ├── bytemuck v1.12.1
│ ├── glow v0.11.2
│ ├── hashbrown v0.12.3 (*)
│ ├── image v0.24.4 (*)
│ ├── log v0.4.17 (*)
│ └── notan_graphics v0.7.1 (*)
├── notan_core v0.7.1
├── notan_draw v0.7.1
│ ├── log v0.4.17 (*)
│ ├── lyon v1.0.0
│ │ ├── lyon_algorithms v1.0.1
│ │ │ └── lyon_path v1.0.1
│ │ │ └── lyon_geom v1.0.1
│ │ │ ├── arrayvec v0.7.2
│ │ │ ├── euclid v0.22.7
│ │ │ │ └── num-traits v0.2.15 (*)
│ │ │ └── num-traits v0.2.15 (*)
│ │ └── lyon_tessellation v1.0.4
│ │ ├── float_next_after v0.1.5
│ │ │ └── num-traits v0.2.15 (*)
│ │ ├── lyon_path v1.0.1 (*)
│ │ └── thiserror v1.0.37 (*)
│ ├── notan_app v0.7.1 (*)
│ ├── notan_glyph v0.7.1
│ │ ├── bytemuck v1.12.1
│ │ ├── glyph_brush v0.7.5
│ │ │ ├── glyph_brush_draw_cache v0.1.5
│ │ │ │ ├── ab_glyph v0.2.17
│ │ │ │ │ ├── ab_glyph_rasterizer v0.1.7
│ │ │ │ │ └── owned_ttf_parser v0.15.2
│ │ │ │ │ └── ttf-parser v0.15.2
│ │ │ │ ├── crossbeam-channel v0.5.6
│ │ │ │ │ ├── cfg-if v1.0.0
│ │ │ │ │ └── crossbeam-utils v0.8.12
│ │ │ │ │ └── cfg-if v1.0.0
│ │ │ │ ├── crossbeam-deque v0.8.2
│ │ │ │ │ ├── cfg-if v1.0.0
│ │ │ │ │ ├── crossbeam-epoch v0.9.11
│ │ │ │ │ │ ├── cfg-if v1.0.0
│ │ │ │ │ │ ├── crossbeam-utils v0.8.12 (*)
│ │ │ │ │ │ ├── memoffset v0.6.5 (*)
│ │ │ │ │ │ └── scopeguard v1.1.0
│ │ │ │ │ │ [build-dependencies]
│ │ │ │ │ │ └── autocfg v1.1.0
│ │ │ │ │ └── crossbeam-utils v0.8.12 (*)
│ │ │ │ ├── linked-hash-map v0.5.6
│ │ │ │ ├── rayon v1.5.3
│ │ │ │ │ ├── crossbeam-deque v0.8.2 (*)
│ │ │ │ │ ├── either v1.8.0
│ │ │ │ │ └── rayon-core v1.9.3
│ │ │ │ │ ├── crossbeam-channel v0.5.6 (*)
│ │ │ │ │ ├── crossbeam-deque v0.8.2 (*)
│ │ │ │ │ ├── crossbeam-utils v0.8.12 (*)
│ │ │ │ │ └── num_cpus v1.13.1
│ │ │ │ │ └── libc v0.2.135
│ │ │ │ │ [build-dependencies]
│ │ │ │ │ └── autocfg v1.1.0
│ │ │ │ └── rustc-hash v1.1.0
│ │ │ ├── glyph_brush_layout v0.2.3
│ │ │ │ ├── ab_glyph v0.2.17 (*)
│ │ │ │ ├── approx v0.5.1
│ │ │ │ │ └── num-traits v0.2.15 (*)
│ │ │ │ └── xi-unicode v0.3.0
│ │ │ ├── log v0.4.17 (*)
│ │ │ ├── ordered-float v3.2.0
│ │ │ │ └── num-traits v0.2.15 (*)
│ │ │ ├── rustc-hash v1.1.0
│ │ │ └── twox-hash v1.6.3
│ │ │ ├── cfg-if v1.0.0
│ │ │ ├── rand v0.8.5
│ │ │ │ ├── libc v0.2.135
│ │ │ │ ├── rand_chacha v0.3.1
│ │ │ │ │ ├── ppv-lite86 v0.2.16
│ │ │ │ │ └── rand_core v0.6.4
│ │ │ │ │ └── getrandom v0.2.7 (*)
│ │ │ │ └── rand_core v0.6.4 (*)
│ │ │ └── static_assertions v1.1.0
│ │ ├── log v0.4.17 (*)
│ │ ├── notan_app v0.7.1 (*)
│ │ ├── notan_graphics v0.7.1 (*)
│ │ └── notan_math v0.7.1 (*)
│ ├── notan_graphics v0.7.1 (*)
│ ├── notan_macro v0.7.1 (proc-macro) (*)
│ ├── notan_math v0.7.1 (*)
│ ├── notan_text v0.7.1
│ │ ├── log v0.4.17 (*)
│ │ ├── notan_app v0.7.1 (*)
│ │ ├── notan_glyph v0.7.1 (*)
│ │ ├── notan_graphics v0.7.1 (*)
│ │ └── notan_math v0.7.1 (*)
│ ├── serde v1.0.145
│ │ └── serde_derive v1.0.145 (proc-macro)
│ │ ├── proc-macro2 v1.0.46 (*)
│ │ ├── quote v1.0.21 (*)
│ │ └── syn v1.0.102 (*)
│ └── serde_json v1.0.86
│ ├── itoa v1.0.4
│ ├── ryu v1.0.11
│ └── serde v1.0.145 (*)
├── notan_graphics v0.7.1 (*)
├── notan_input v0.7.1 (*)
├── notan_log v0.7.1
│ ├── fern v0.6.1
│ │ ├── colored v1.9.3
│ │ │ ├── atty v0.2.14
│ │ │ │ └── libc v0.2.135
│ │ │ └── lazy_static v1.4.0
│ │ └── log v0.4.17 (*)
│ ├── log v0.4.17 (*)
│ ├── notan_app v0.7.1 (*)
│ └── time v0.3.15
│ ├── itoa v1.0.4
│ ├── libc v0.2.135
│ └── num_threads v0.1.6
├── notan_macro v0.7.1 (proc-macro) (*)
├── notan_math v0.7.1 (*)
├── notan_random v0.7.1
│ ├── rand v0.8.5 (*)
│ └── rand_pcg v0.3.1
│ └── rand_core v0.6.4 (*)
└── notan_utils v0.7.1 (*)
It's interesting that you mention the error is supposed to happen if logs are initialized twice: for some reason the browser seems to be loading the app twice:
The output above is from a single page load. Not sure why this is happening. I thought it might be extensions I have, but I'm getting the same problem on Firefox.
I've posted the example online in case it might help: https://irfanbaig.com/eg_notan.html
This was quite interesting! I found the issue. It seems that wasm-bindgen
is executing by itself the function main
if it exists. So when notan_main
is called we're indeed executing twice, first main
will be executed when the module is loaded, and then notan_main
manually after that.
Options that we have here:
main
function! No need to call notan_main
on web if we're using the main function already. You can even avoid the macro #[notan_main]
because is just a wrapper to expose the init method on web and mobile, however, because main is doing this already (at least on web), there is no use for it.lib.rs
instead of main.rs
will need to expose the start method with the notan_main
macro, and this should be called manually from the javascript
side. I saw also another interesting thing. Using wasm-bindgen
will use by default main.rs
even if the crate is defined as a lib and a lib.rs
exists. If you remove the main.rs
then the lib.rs
will be used. Meanwhile, using wasm-pack
will use by default the lib.rs
file.
I have in mind to check how Tunk does it, but I did not have time yet to dig into that.
Anyway, thank you so much for this detailed report, we learned something for sure today. I hope this helps you, feel free to reopen if you need anything else!
Thanks so much for looking into it. Commenting out the module.notan_main();
line in the HTML file works for me.
Might make sense to add a comment in the README above the line to that effect "If you're using wasm-bindgen, comment out the line below" or something like that. Thanks again!
Environment: notan = "0.7.1" on Ubuntu 22.04
Issue: If I don't explicitly set a log message in the app, then I get the following error in the browser console:
Web target: Error initializing logs: attempted to set a logger after the logging system was already initialized
Screenshot:
Here is how I am building:
For example, in the code below, the error occurs unless I comment out the lines in the
starting_logs
function: