moved bitwise operators into standard extensions

snap7
Jens Mönig 2022-02-08 14:50:08 +01:00
rodzic 25e11171a7
commit 8d8c685527
5 zmienionych plików z 56 dodań i 52 usunięć

Wyświetl plik

@ -28,6 +28,7 @@
* fixed the comment in "remove duplicates" in the list utilities library to reflect that the last match is kept
* fixed "do in parallel" block in parallelization library
* new bitwise operators library, thanks, Bernat!
* moved bitwise operators into standard extensions
### 2022-02-07
* lists: fixed JSON encoding for nested lists

Wyświetl plik

@ -1,48 +0,0 @@
SnapExtensions.primitives.set(
'bit_and(a, b)',
function (a, b) {
return a & b;
}
);
SnapExtensions.primitives.set(
'bit_or(a, b)',
function (a, b) {
return a | b;
}
);
SnapExtensions.primitives.set(
'bit_xor(a, b)',
function (a, b) {
return a ^ b;
}
);
SnapExtensions.primitives.set(
'bit_not(a)',
function (a) {
return ~ a;
}
);
SnapExtensions.primitives.set(
'bit_left_shift(a, b)',
function (a, b) {
return a << b;
}
);
SnapExtensions.primitives.set(
'bit_right_shift(a, b)',
function (a, b) {
return a >> b;
}
);
SnapExtensions.primitives.set(
'bit_unsigned_right_shift(a, b)',
function (a, b) {
return a >>> b;
}
);

Wyświetl plik

@ -1 +1 @@
<blocks app="Snap! 7, https://snap.berkeley.edu" version="2"><block-definition s="¬ %&apos;a&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/bitwise.js</l></list></block><block s="doReport"><block s="reportApplyExtension"><l>bit_not(a)</l><list><block var="a"/></list></block></block></script></block-definition><block-definition s="%&apos;a&apos; ∧ %&apos;b&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/bitwise.js</l></list></block><block s="doReport"><block s="reportApplyExtension"><l>bit_and(a, b)</l><list><block var="a"/><block var="b"/></list></block></block></script></block-definition><block-definition s="%&apos;a&apos; %&apos;b&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/bitwise.js</l></list></block><block s="doReport"><block s="reportApplyExtension"><l>bit_or(a, b)</l><list><block var="a"/><block var="b"/></list></block></block></script></block-definition><block-definition s="%&apos;a&apos; ⊻ %&apos;b&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/bitwise.js</l></list></block><block s="doReport"><block s="reportApplyExtension"><l>bit_xor(a, b)</l><list><block var="a"/><block var="b"/></list></block></block></script></block-definition><block-definition s="%&apos;a&apos; &lt;&lt; %&apos;b&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/bitwise.js</l></list></block><block s="doReport"><block s="reportApplyExtension"><l>bit_left_shift(a, b)</l><list><block var="a"/><block var="b"/></list></block></block></script></block-definition><block-definition s="%&apos;a&apos; &gt;&gt; %&apos;b&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/bitwise.js</l></list></block><block s="doReport"><block s="reportApplyExtension"><l>bit_right_shift(a, b)</l><list><block var="a"/><block var="b"/></list></block></block></script></block-definition><block-definition s="%&apos;a&apos; &gt;&gt;&gt; %&apos;b&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/bitwise.js</l></list></block><block s="doReport"><block s="reportApplyExtension"><l>bit_unsigned_right_shift(a, b)</l><list><block var="a"/><block var="b"/></list></block></block></script></block-definition></blocks>
<blocks app="Snap! 7, https://snap.berkeley.edu" version="2"><block-definition s="¬ %&apos;a&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>bit_not(a)</l><list><block var="a"/></list></block></block></script></block-definition><block-definition s="%&apos;a&apos; ∧ %&apos;b&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>bit_and(a, b)</l><list><block var="a"/><block var="b"/></list></block></block></script></block-definition><block-definition s="%&apos;a&apos; %&apos;b&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>bit_or(a, b)</l><list><block var="a"/><block var="b"/></list></block></block></script></block-definition><block-definition s="%&apos;a&apos; ⊻ %&apos;b&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>bit_xor(a, b)</l><list><block var="a"/><block var="b"/></list></block></block></script></block-definition><block-definition s="%&apos;a&apos; &lt;&lt; %&apos;b&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>bit_left_shift(a, b)</l><list><block var="a"/><block var="b"/></list></block></block></script></block-definition><block-definition s="%&apos;a&apos; &gt;&gt; %&apos;b&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>bit_right_shift(a, b)</l><list><block var="a"/><block var="b"/></list></block></block></script></block-definition><block-definition s="%&apos;a&apos; &gt;&gt;&gt; %&apos;b&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>bit_unsigned_right_shift(a, b)</l><list><block var="a"/><block var="b"/></list></block></block></script></block-definition></blocks>

Wyświetl plik

@ -28,7 +28,7 @@
<script src="src/sketch.js?version=2021-11-03"></script>
<script src="src/video.js?version=2019-06-27"></script>
<script src="src/maps.js?version=2021-06-15"></script>
<script src="src/extensions.js?version=2022-02-07"></script>
<script src="src/extensions.js?version=2022-02-08"></script>
<script src="src/xml.js?version=2021-07-05"></script>
<script src="src/store.js?version=2022-01-02"></script>
<script src="src/locale.js?version=2022-01-31"></script>

Wyświetl plik

@ -31,9 +31,9 @@
IDE_Morph, CamSnapshotDialogMorph, SoundRecorderDialogMorph, isSnapObject, nop,
Color, Process, contains*/
/*jshint esversion: 11*/
/*jshint esversion: 11, bitwise: false*/
modules.extensions = '2022-February-07';
modules.extensions = '2022-February-08';
// Global stuff
@ -259,6 +259,57 @@ SnapExtensions.primitives.set(
}
);
// bitwise operations
SnapExtensions.primitives.set(
'bit_and(a, b)',
function (a, b) {
return a & b;
}
);
SnapExtensions.primitives.set(
'bit_or(a, b)',
function (a, b) {
return a | b;
}
);
SnapExtensions.primitives.set(
'bit_xor(a, b)',
function (a, b) {
return a ^ b;
}
);
SnapExtensions.primitives.set(
'bit_not(a)',
function (a) {
return ~ a;
}
);
SnapExtensions.primitives.set(
'bit_left_shift(a, b)',
function (a, b) {
return a << b;
}
);
SnapExtensions.primitives.set(
'bit_right_shift(a, b)',
function (a, b) {
return a >> b;
}
);
SnapExtensions.primitives.set(
'bit_unsigned_right_shift(a, b)',
function (a, b) {
return a >>> b;
}
);
// data sciene & frequency distribution analysis (dta_):
SnapExtensions.primitives.set(