-
-
Notifications
You must be signed in to change notification settings - Fork 4
Todo
open questions
these are part of wasp-hosted.wasm : (import "env" "assert_expect" (func $assert_expect (type 3))) (import "env" "async_yield" (func $async_yield (type 5))) should only be used in TEST config!
(import "env" "download" (func $download (type 2))) per APP!
(import "env" "js_demangle" (func $js_demangle (type 2))) todo("__cxa_demangle in wasm");
https://www.bram.us/2022/01/11/yaml-the-norway-problem/ countries = [ de, gb, no ] => no==false
solution 1: distinguish between symbol and expression context / mode. in expression context countries = [ de, gb, no ] would throw because de is not a known symbol
solution 2: add special syntax for lists of strings / symbols within expression contexts: similar to ruby %w[de gb no] maybe de gb no == de, gb, no ?
solution 3: add special context in which
countries = [ de, gb, $no ] would access variable
(data $wasp_data (i32.const 65536) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\18\00\01\00\06\00\00\00canvas\00")) => (data $wasp_data (i32.const 65536) "\00\00\00\00\00\00\00\00\00\00\00\00\00") (data $wasp_data__canvas_string (i32.const 65536+12) "\00\00\00\18\00\01\00\06\00\00\00canvas\00"))
ƒ19 _ Z3powIilENSt3__29enable_ifIXaasr3std13is_arithmeticIT_EE5valuesr3std13is_arithmeticIT0_EE5valueENS0_9__promoteIS2_S3_vEEE4type4typeES2_S3_ ≈ ƒ19 std::__2::enable_if<(std::is_arithmetic::value,) ƒ19 std::__2::enable_if<(std::is_arithmetic::value) && (std::is_arithmetic::value), std::__2::__promote<int, long, void> >::type::type pow<int, long>(int, long) ≈ ƒ19 std::__2::enable_if<( «todo» ?) ⇨ number
Node:: int capacity = 30;// TODO !!! lol lists>100 elements;) int MAX_NODE_CAPACITY = 800;// TODO !!!
Different list separators have different bindings: While 1,2,3 binds as one expression, 1;2;3 yields the last element as return value.
in that: every question is a todo?
https://github.com/bytecodealliance/wasmtime/pull/4431 unload modules: https://github.com/bytecodealliance/wasmtime/issues/2210
We should follow Julia's splendid approach to norm unicode: Exemplary the following should be treated identical early on: 0x0041 65 LATIN CAPITAL LETTER A A 0x0410 1040 CYRILLIC CAPITAL LETTER A А 0x0391 913 GREEK CAPITAL LETTER ALPHA Α 0xFF21 65313 FULLWIDTH LATIN CAPITAL LETTER A A
0x0061 97 LATIN SMALL LETTER A a 0x0430 1072 CYRILLIC SMALL LETTER A а 0xFF41 65345 FULLWIDTH LATIN SMALL LETTER A a 0x0251 593 LATIN SMALL LETTER ALPHA ɑ
As for signs which are near identical, but still distinguishable, one could also argue to unify them: U+1EFE Ỿ Latin Capital Letter Y with loop U+1EFF ỿ Latin Small Letter Y with loop
However diacritic marks should distinguish symbols: Ḁ ≠ A ≠ Ⓐ
omicron 'ο' is needs special care (later!)
BUT 0x04D2 1234 CYRILLIC CAPITAL LETTER A WITH DIAERESIS Ӓ == German Ä
To avoid confusion, one may decide to disallow some historic or obscure alphabets:
𐊆 66182 𐊆 10286 LYCIAN LETTER I 𐊇 66183 𐊇 10287 LYCIAN LETTER W 𐊈 66184 𐊈 10288 LYCIAN LETTER Z 𐊊 66186 𐊊 1028A
LYCIAN LETTER J 𐊍 66189 𐊍 1028D LYCIAN LETTER L 𐊎 66190 𐊎 1028E LYCIAN LETTER M 𐊏 66191 𐊏 1028F LYCIAN LETTER N 𐊐
66192 𐊐 10290 LYCIAN LETTER MM 𐊒 66194 𐊒 10292 LYCIAN LETTER U 𐊕 66197 𐊕 10295 LYCIAN LETTER R 0x0280 640 LATIN
LETTER SMALL CAPITAL R ʀ
a=Mike(); my_map={a:b}; other_map={a:c}
The reference problem is orthogonal to the Question:
it ambiguity in nested scopes fix bad language design and ambiguity Refine the concepts of mutable values and variables
suffix operator ⁿ := c=it;while n-->0 : c*=it; c
isSetter ?
potence / logical and / logical not
ø + 1 == +1 == 1
/7 = 1/7
Node& Node::fun(){return *this;} // danger can't turn a stack Node into heap Node reference!!
float okf5(float f=0) { return 41.5 + f; } assert_run("okf5", 41.5); /// … expected f32 but nothing on stack
// Identifiers with the same name as keywords are quoted. %bool: func()
kids today grow up with scratch, the logo of this generation todo: add scratch library to replicate scratch functions https://scratch.mit.edu/projects/751647322
<>
Todo Currently Angle is a compiled language. The (optional!) runtime does contain an interpreter (lacking in implementation) sharing the same parse -> analyze pipeline. All dynamic calls should probably be passed through that eval mechanism.
getstatic java/lang/System/out Ljava/io/PrintStream;
invokevirtual java/io/PrintStream/println(F)V
changing bool isGlobal(Node &node, Function& function) to bool isGlobal(Node &node, Function function) makes tests fail!? But why? Function is not touched, no special copy constructor is defined. the default shallow copy might duplicate the function object's values causing side effects. but which?