Forwarded from dnaugsuz
不过我听人说 Kotlin 支持尾调用优化(Tail-call Optimization),并且更 Functional 一些,所以很值得尝试
Forwarded from dnaugsuz
Transfer Rate 慢了不少,几乎是慢五倍
你在用 DartVM 还是 JVM?JVM 是 Oracle 的 HotSpot?
你在用 DartVM 还是 JVM?JVM 是 Oracle 的 HotSpot?
Forwarded from dnaugsuz
唯一的不足就是 GraalVM AOT 优化虚拟机目前不支持
但是,Dalvik ART 模式支持 Kotlin(当然不是直接支持,都是经过 Dexer 翻译的)
但是,Dalvik ART 模式支持 Kotlin(当然不是直接支持,都是经过 Dexer 翻译的)
Forwarded from dnaugsuz
五倍... 我看这类型还是别检查了吧
毕竟不是 JNI 于 Java 的关系一样可以多考虑安全
毕竟不是 JNI 于 Java 的关系一样可以多考虑安全
Forwarded from dnaugsuz
JIT 引擎启动一般需要花时间,类似 LLVM 的优化器想必也得有些全局状态要初始化吧...
Forwarded from dnaugsuz
https://github.com/ice1000/Ruiko.kt/blob/master/src/lexer/lexer.kt
Kotlin 的高级语言特性级别可以说和 C# 类似了,甚至有些略微胜出的意思
Kotlin 的高级语言特性级别可以说和 C# 类似了,甚至有些略微胜出的意思
GitHub
ice1000/Ruiko.kt
Kotlin version of Ruiko.fs. Contribute to ice1000/Ruiko.kt development by creating an account on GitHub.
Forwarded from dnaugsuz
只是照着以前开发 Java 的经验去使用 Kotlin 这些便利和高等语言特性是察觉不到的,比较语言关键字的话可见一斑
Forwarded from dnaugsuz
我发现开发 Android 的工程师有的根本没专门学过 Kotlin,只是基本熟悉了和 Java 的语法变化就当成 语法糖版本的 Java 来用,甚至有人连 Kotlin 的原型扩展 Prototype Extension 都不知道,还在用
static 方法... 😶#daily 见到了一些非常简单的逻辑,但是居然算法就无法立刻想出来...
比如三个并排 LED 的『进度』提示
然后这个循环可以包装一下,成为 Coroutine 或者 Thread 模式的...
和 MDWiki 的 未读提示
比如三个并排 LED 的『进度』提示
while true
all_lights on
sleep k
light_r off
sleep k
light_c off
sleep k
light_l off
sleep k
continue
然后这个循环可以包装一下,成为 Coroutine 或者 Thread 模式的...
和 MDWiki 的 未读提示
routine update
if view_top < element_pos.low_y
make_gray view
duangsues.is_a? SaltedFish
#daily 见到了一些非常简单的逻辑,但是居然算法就无法立刻想出来... 比如三个并排 LED 的『进度』提示 while true all_lights on sleep k light_r off sleep k light_c off sleep k light_l off sleep k continue 然后这个循环可以包装一下,成为 Coroutine 或者 Thread 模式的... 和 MDWiki 的 未读提示 routine update…
This media is not supported in your browser
VIEW IN TELEGRAM
Forwarded from dnaugsuz
LLVM 做得也挺多的...
JIT 编译是很耗时的,虽然词法分析和语法分析之前都做了,bitcode 到机器代码要经过大得吓人的工序,数十个 Pass... 分析 Pass 和优化 Pass 都比较花时间
循环优化和启发式余赘指令合并、各种图操作、寄存器选择大概都是比较花时间的吧
AOT 就基本不用再多花时间做这些了
PassManager 要加载一大堆不是完全无关的 Pass,这些 Pass 还要初始化...JIT 编译是很耗时的,虽然词法分析和语法分析之前都做了,bitcode 到机器代码要经过大得吓人的工序,数十个 Pass... 分析 Pass 和优化 Pass 都比较花时间
循环优化和启发式余赘指令合并、各种图操作、寄存器选择大概都是比较花时间的吧
AOT 就基本不用再多花时间做这些了
LineTerminator = \r|\n|\r\n
InputCharacter = [^\r\n]
TraditionalComment = "/*" [^*] ~"*/" | "/*" "*"+ "*/"
EndOfLineComment = "//" {InputCharacter}* {LineTerminator}?
Comment = {TraditionalComment} | {EndOfLineComment}
%x YYINITIAL
%s STRING CHAR
%%
<YYINITIAL> {
{Comment} { }
\" { yybegin(STRING); }
\' { yybegin(CHAR); }
}
<STRING>("\"") { yybegin(YYINITIAL); printf("\""); }
<CHAR>("\'") { yybegin(YYINITIAL); printf("'"); }
<<EOF>> {}
%%
int main(int argc, const char *argv[]) {
if (argc > 1)
yyin = fopen(argv[1], "r");
else
yyin = stdin;
yylex();
return 0;
}