Skip to content

Commit 85a6c6a

Browse files
committed
build: update compiler flags and export resolution
1 parent 75ff0b6 commit 85a6c6a

File tree

5 files changed

+119
-122
lines changed

5 files changed

+119
-122
lines changed

lib/node_modules/@stdlib/blas/base/snrm2-wasm/lib/binary.browser.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ var base64ToUint8Array = require( '@stdlib/string/base/base64-to-uint8array' );
2525

2626
// MAIN //
2727

28-
var wasm = base64ToUint8Array( 'AGFzbQEAAAAADwhkeWxpbmsuMAEEAAAAAAETA2AAAGADf39/AX1gBH9/f38BfQIPAQNlbnYGbWVtb3J5AgAAAwQDAAECB0wEEV9fd2FzbV9jYWxsX2N0b3JzAAAYX193YXNtX2FwcGx5X2RhdGFfcmVsb2NzAAAHY19zbnJtMgABD2Nfc25ybTJfbmRhcnJheQACCogDAwMAAQshAQF+IAAgASACIAKsIgNCASAArH1+QgAgA0IAVxunEAIL3wICBX0Df0EBIQkgAEEASgR9A0ACQCABIANBAnRqKgIAiyIHQwAAgFleBEAgBiAHQwAAgBmUIgYgBpSSIQZBACEJDAELIAdDAAAAIF0EQCAJIQpBACEJIApFDQEgBSAHQwAAAGWUIgUgBZSSIQVBASEJDAELIAQgByAHlJIhBAsgAiADaiEDIAtBAWoiCyAARw0ACwJAIAZDAAAAAF4EQCAEQwAAgBmUQwAAgBmUIAaSIgUgBiAEQ///f39eGyAFIARDAAAAAF8bIQRDAACAZSEGDAELQwAAgD8hBiAFQwAAAABeRQ0AAkAgBCAEXA0AIARDAAAAAF4NACAEQ///f39eDQAgBSEEQwAAABohBgwBCyAFkUMAAAAalCIFIASRIgQgBCAFXSIAGyIHIAeUIQggBCAFIAAbIAeVIgQgBJS7RAAAAAAAAPA/oCAIu6K2IQQLIAYgBJGUBUMAAAAACws=' );
28+
var wasm = base64ToUint8Array( 'AGFzbQEAAAAADwhkeWxpbmsuMAEEAAAAAAETA2AAAGADf39/AX1gBH9/f38BfQIPAQNlbnYGbWVtb3J5AgAAAwQDAAECB0wEEV9fd2FzbV9jYWxsX2N0b3JzAAAYX193YXNtX2FwcGx5X2RhdGFfcmVsb2NzAAAHY19zbnJtMgABD2Nfc25ybTJfbmRhcnJheQACCoIDAwMAAQsaACAAIAEgAkEBIABrIAJsQQAgAkEATBsQAgvgAgIFfQN/QQEhCSAAQQBKBH0DQCAAIApGRQRAAkAgASADQQJ0aioCACIIiyIHQwAAgFleBEAgBiAHQwAAgBmUIgYgBpSSIQZBACEJDAELIAdDAAAAIF0EQCAJIQtBACEJIAtFDQEgBSAHQwAAAGWUIgUgBZSSIQVBASEJDAELIAQgCCAIlJIhBAsgCkEBaiEKIAIgA2ohAwwBCwsCQCAGQwAAAABeBEAgBEMAAIAZlEMAAIAZlCAGkiIFIAYgBEP//39/XhsgBSAEQwAAAABfGyEEQwAAgGUhBgwBC0MAAIA/IQYgBUMAAAAAXkUNACAEIARcIARDAAAAAF5yIARD//9/f15yRQRAIAUhBEMAAAAaIQYMAQsgBJEiBCAFkUMAAAAalCIFIAQgBV0iABsgBSAEIAAbIgSVIgUgBZS7RAAAAAAAAPA/oCAEIASUu6K2IQQLIAYgBJGUBUMAAAAACws=' );
2929

3030

3131
// EXPORTS //

lib/node_modules/@stdlib/blas/base/snrm2-wasm/src/Makefile

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -80,26 +80,37 @@ else
8080
NODEJS := node
8181
endif
8282

83+
# Define the integer size:
84+
ifdef CBLAS_INT
85+
INT_TYPE := $(CBLAS_INT)
86+
else
87+
INT_TYPE := int32_t
88+
endif
89+
8390
# Define the command-line options when compiling C files:
8491
CFLAGS ?= \
8592
-std=c99 \
8693
-O3 \
94+
-flto \
8795
-Wall \
8896
-pedantic \
89-
-D CBLAS_INT=int32_t
97+
-D CBLAS_INT=$(INT_TYPE)
9098

9199
# Define the command-line options when compiling C files to WebAssembly and asm.js:
92100
EMCCFLAGS ?= $(CFLAGS)
93101

94102
# Define shared `emcc` flags:
95103
EMCC_SHARED_FLAGS := \
104+
-Oz \
105+
-fwasm-exceptions \
106+
-s SUPPORT_LONGJMP=1 \
96107
-s SIDE_MODULE=2 \
97-
-s WASM_BIGINT=0 \
98-
-s EXPORTED_FUNCTIONS="['_c_snrm2','_c_snrm2_ndarray']"
108+
-s EXPORTED_FUNCTIONS="$(shell cat exports.json | tr -d ' \t\n' | sed s/\"/\'/g)"
99109

100110
# Define WebAssembly `emcc` flags:
101111
EMCC_WASM_FLAGS := $(EMCC_SHARED_FLAGS) \
102-
-s WASM=1
112+
-s WASM=1 \
113+
-s WASM_BIGINT=0
103114

104115
# List of includes (e.g., `-I /foo/bar -I /beep/boop/include`):
105116
INCLUDE ?=
@@ -217,7 +228,7 @@ $(browser_js_targets): $(wasm_targets)
217228
# make clean-wasm
218229
#/
219230
clean-wasm:
220-
$(QUIET) -rm -f *.wasm *.wat *.wasm.js
231+
$(QUIET) -rm -f *.wasm *.wat *.wasm.js $(browser_js_targets)
221232

222233
.PHONY: clean-wasm
223234

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
[
2+
"_c_snrm2",
3+
"_c_snrm2_ndarray"
4+
]
-6 Bytes
Binary file not shown.

lib/node_modules/@stdlib/blas/base/snrm2-wasm/src/main.wat

Lines changed: 98 additions & 116 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,3 @@
1-
;; @license Apache-2.0
2-
;;
3-
;; Copyright (c) 2024 The Stdlib Authors.
4-
;;
5-
;; Licensed under the Apache License, Version 2.0 (the "License");
6-
;; you may not use this file except in compliance with the License.
7-
;; You may obtain a copy of the License at
8-
;;
9-
;; http://www.apache.org/licenses/LICENSE-2.0
10-
;;
11-
;; Unless required by applicable law or agreed to in writing, software
12-
;; distributed under the License is distributed on an "AS IS" BASIS,
13-
;; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14-
;; See the License for the specific language governing permissions and
15-
;; limitations under the License.
16-
171
(module
182
(type (;0;) (func))
193
(type (;1;) (func (param i32 i32 i32) (result f32)))
@@ -22,24 +6,19 @@
226
(func (;0;) (type 0)
237
nop)
248
(func (;1;) (type 1) (param i32 i32 i32) (result f32)
25-
(local i64)
269
local.get 0
2710
local.get 1
2811
local.get 2
29-
local.get 2
30-
i64.extend_i32_s
31-
local.tee 3
32-
i64.const 1
12+
i32.const 1
3313
local.get 0
34-
i64.extend_i32_s
35-
i64.sub
36-
i64.mul
37-
i64.const 0
38-
local.get 3
39-
i64.const 0
40-
i64.le_s
14+
i32.sub
15+
local.get 2
16+
i32.mul
17+
i32.const 0
18+
local.get 2
19+
i32.const 0
20+
i32.le_s
4121
select
42-
i32.wrap_i64
4322
call 2)
4423
(func (;2;) (type 2) (param i32 i32 i32 i32) (result f32)
4524
(local f32 f32 f32 f32 f32 i32 i32 i32)
@@ -50,73 +29,78 @@
5029
i32.gt_s
5130
if (result f32) ;; label = @1
5231
loop ;; label = @2
53-
block ;; label = @3
54-
local.get 1
55-
local.get 3
56-
i32.const 2
57-
i32.shl
58-
i32.add
59-
f32.load
60-
f32.abs
61-
local.tee 7
62-
f32.const 0x1p+52 (;=4.5036e+15;)
63-
f32.gt
64-
if ;; label = @4
65-
local.get 6
66-
local.get 7
67-
f32.const 0x1p-76 (;=1.32349e-23;)
68-
f32.mul
69-
local.tee 6
70-
local.get 6
71-
f32.mul
72-
f32.add
73-
local.set 6
74-
i32.const 0
75-
local.set 9
76-
br 1 (;@3;)
77-
end
78-
local.get 7
79-
f32.const 0x1p-63 (;=1.0842e-19;)
80-
f32.lt
81-
if ;; label = @4
82-
local.get 9
83-
local.set 10
84-
i32.const 0
85-
local.set 9
86-
local.get 10
87-
i32.eqz
88-
br_if 1 (;@3;)
89-
local.get 5
32+
local.get 0
33+
local.get 10
34+
i32.eq
35+
i32.eqz
36+
if ;; label = @3
37+
block ;; label = @4
38+
local.get 1
39+
local.get 3
40+
i32.const 2
41+
i32.shl
42+
i32.add
43+
f32.load
44+
local.tee 8
45+
f32.abs
46+
local.tee 7
47+
f32.const 0x1p+52 (;=4.5036e+15;)
48+
f32.gt
49+
if ;; label = @5
50+
local.get 6
51+
local.get 7
52+
f32.const 0x1p-76 (;=1.32349e-23;)
53+
f32.mul
54+
local.tee 6
55+
local.get 6
56+
f32.mul
57+
f32.add
58+
local.set 6
59+
i32.const 0
60+
local.set 9
61+
br 1 (;@4;)
62+
end
9063
local.get 7
91-
f32.const 0x1p+75 (;=3.77789e+22;)
92-
f32.mul
93-
local.tee 5
94-
local.get 5
64+
f32.const 0x1p-63 (;=1.0842e-19;)
65+
f32.lt
66+
if ;; label = @5
67+
local.get 9
68+
local.set 11
69+
i32.const 0
70+
local.set 9
71+
local.get 11
72+
i32.eqz
73+
br_if 1 (;@4;)
74+
local.get 5
75+
local.get 7
76+
f32.const 0x1p+75 (;=3.77789e+22;)
77+
f32.mul
78+
local.tee 5
79+
local.get 5
80+
f32.mul
81+
f32.add
82+
local.set 5
83+
i32.const 1
84+
local.set 9
85+
br 1 (;@4;)
86+
end
87+
local.get 4
88+
local.get 8
89+
local.get 8
9590
f32.mul
9691
f32.add
97-
local.set 5
98-
i32.const 1
99-
local.set 9
100-
br 1 (;@3;)
92+
local.set 4
10193
end
102-
local.get 4
103-
local.get 7
104-
local.get 7
105-
f32.mul
106-
f32.add
107-
local.set 4
94+
local.get 10
95+
i32.const 1
96+
i32.add
97+
local.set 10
98+
local.get 2
99+
local.get 3
100+
i32.add
101+
local.set 3
102+
br 1 (;@2;)
108103
end
109-
local.get 2
110-
local.get 3
111-
i32.add
112-
local.set 3
113-
local.get 11
114-
i32.const 1
115-
i32.add
116-
local.tee 11
117-
local.get 0
118-
i32.ne
119-
br_if 0 (;@2;)
120104
end
121105
block ;; label = @2
122106
local.get 6
@@ -153,55 +137,53 @@
153137
f32.gt
154138
i32.eqz
155139
br_if 0 (;@2;)
156-
block ;; label = @3
157-
local.get 4
158-
local.get 4
159-
f32.ne
160-
br_if 0 (;@3;)
161-
local.get 4
162-
f32.const 0x0p+0 (;=0;)
163-
f32.gt
164-
br_if 0 (;@3;)
165-
local.get 4
166-
f32.const 0x1.fffffep+127 (;=3.40282e+38;)
167-
f32.gt
168-
br_if 0 (;@3;)
140+
local.get 4
141+
local.get 4
142+
f32.ne
143+
local.get 4
144+
f32.const 0x0p+0 (;=0;)
145+
f32.gt
146+
i32.or
147+
local.get 4
148+
f32.const 0x1.fffffep+127 (;=3.40282e+38;)
149+
f32.gt
150+
i32.or
151+
i32.eqz
152+
if ;; label = @3
169153
local.get 5
170154
local.set 4
171155
f32.const 0x1p-75 (;=2.64698e-23;)
172156
local.set 6
173157
br 1 (;@2;)
174158
end
159+
local.get 4
160+
f32.sqrt
161+
local.tee 4
175162
local.get 5
176163
f32.sqrt
177164
f32.const 0x1p-75 (;=2.64698e-23;)
178165
f32.mul
179166
local.tee 5
180167
local.get 4
181-
f32.sqrt
182-
local.tee 4
183-
local.get 4
184168
local.get 5
185169
f32.lt
186170
local.tee 0
187171
select
188-
local.tee 7
189-
local.get 7
190-
f32.mul
191-
local.set 8
192-
local.get 4
193172
local.get 5
173+
local.get 4
194174
local.get 0
195175
select
196-
local.get 7
197-
f32.div
198176
local.tee 4
199-
local.get 4
177+
f32.div
178+
local.tee 5
179+
local.get 5
200180
f32.mul
201181
f64.promote_f32
202182
f64.const 0x1p+0 (;=1;)
203183
f64.add
204-
local.get 8
184+
local.get 4
185+
local.get 4
186+
f32.mul
205187
f64.promote_f32
206188
f64.mul
207189
f32.demote_f64

0 commit comments

Comments
 (0)