/tmp/duangsuse.sock
const path = require('path'); const moduleConfig = { libraryTarget: "this" }; module.exports = { entry: "./parserkt.js", output: { path: path.resolve(__dirname, "build/js"), filename: "ParserKt.js", ...moduleConfig }, mode: "development"…
即便得到了热心群友的帮助
最终还是失败了:
package.json
最终还是失败了:
package.json
{
"name": "parserkt",
"module": "parserkt.entry.js",
"dependencies": {
"kotlin": "^1.3",
"parserkt-util": "file:parserkt-util"
},
"repository": "github:ParserKt/ParserKt",
"license": "MIT"
}
parserkt.entry.jsexport * from "./build/js/parserkt";parserkt-util/package.json
export * from "parserkt-util";
{
"name": "parserkt-util",
"main": "build/js/"
}
webpack.config.jsconst path = require("path");
module.exports = {
entry: "./parserkt.entry.js",
output: {
path: path.resolve(__dirname, "build/js/"),
filename: "ParserKt.js",
libraryTarget: "this"
},
mode: "development"
};Telegram
duang suz in [CN] Android Dev
build/js$ node
Welcome to Node.js v13.9.0.
Type ".help" for more information.
> require('./test')
{ helloTo: [Function: helloTo], helloTo2: [Function: helloTo2] }
果然就能用了,看来还是需要 npm install 啊 🤔
唯一美中不足的是,node_modules 足足有 19M 大,虽然不必提交上去
Welcome to Node.js v13.9.0.
Type ".help" for more information.
> require('./test')
{ helloTo: [Function: helloTo], helloTo2: [Function: helloTo2] }
果然就能用了,看来还是需要 npm install 啊 🤔
唯一美中不足的是,node_modules 足足有 19M 大,虽然不必提交上去
Forwarded from Deleted Account
C++实在是太多了,从并发到 二进制结构对齐、ABI 都有定义
我等萌新不敢对 软件工程界+信息处理的科学 有不敬
至于世界上 99% 可见应用程序的开发更是不需要 C++ 里 90% 的定义了,C++ 每次总是只有很少一部分会被人用到
我等萌新不敢对 软件工程界+信息处理的科学 有不敬
至于世界上 99% 可见应用程序的开发更是不需要 C++ 里 90% 的定义了,C++ 每次总是只有很少一部分会被人用到
Forwarded from Deleted Account
Gradle 弄得我真是心累,总算是确定了 multiplatform 的默认设置没问题吧, fatJar 又搞不好体积优化
我又不熟悉 Gradle 和 Kotlin plugin,只好干脆一不做二不休把 JS 的 artifact 也混在 fat jar 里等优化,反正一堆 .kjsm 没法削掉……
我又不熟悉 Gradle 和 Kotlin plugin,只好干脆一不做二不休把 JS 的 artifact 也混在 fat jar 里等优化,反正一堆 .kjsm 没法削掉……
proguard.sh -keep 'public class HanCalc { public static void main(java.lang.String[]); }' \
-injars Examples-JVM-s.jar -out calc_out.jar \
-libraryjars '/usr/lib/jvm/default/jmods/java.base.jmod' \
-dontobfuscate -dontwarnForwarded from Deleted Account
HanCalc.jar
459.6 KB
[duangsuse@susepc libs]$ java -jar HanCalc.jar
> 1+12+32-
|三百三十三
= -288
Forwarded from 《一天世界》博客 (Lawrence Li)
《一天世界》博客:《剩余价值》播客被中国封杀
https://blog.yitianshijie.net/2020/02/26/surplus-value-podcast-banned-by-china/
https://blog.yitianshijie.net/2020/02/26/surplus-value-podcast-banned-by-china/
一天世界
《剩余价值》播客被中国封杀
由三位女性媒体人发起的泛文化类播客《剩余价值》上周发布了第五十一期节目「瘟疫、语言和具体的人」,内容是对北京大…
个人感觉你了解得很广,但是深度比较欠缺,怀疑你会在实现这门语言解释器的时候出现问题,我给你总结下吧。
编程是用语言提供的基础逻辑结构实现自己的程序,编程语言依据范式提供一套基础的编程方法。
实践里,程序的简洁性(可读性)、可复用性、灵活性、安全性、健壮性都是很重要的,其中编程语言主要负责简洁性和复用性。
按照抽象层次大体划分,编程分为表述式(imperative) 和 定义式(declarative)。
更细地,无结构编程(unstructured programming)、结构化编程(structured programming) 或者说过程式、函数式(functional)、面向对象(object-oriented)、关系式(relational) 也即逻辑式。
其中机器汇编属于无结构编程。现代电子计算机是一种表述式的机器,每个处理器核心按照顺序执行指令,指令可能读写存储器,也可能执行(带条件)的跳转,以移步到程序的另一个部分继续执行。
在冯·诺依曼的存储式程序计算机里,代码也是数据。这种“动态解释”的模型比较灵活,只要有“执行资源”和随便什么程序,计算机可以“一机多用”。
再广一点就涉及二进制、数据编码和转化、ABI、目标文件格式、程序分段、广义的虚拟化资源共享化了,这方面我们不需要知道太多。
编程语言的实现一般而言就是最少一个解释器(interpreter),本质上和计算器一致,都是递归的树型结构的后序遍历器。
稍微高级一点的会增加或者直接换为去实现一个编译器(compiler),编译器和解释器都会实现语言的抽象语义,但是—多了一个代码生成(codegen) 的步骤,也就是所谓的“编译期”。
不过现代对开发工具的要求也是很高的,所以实现也要配套至少代码高亮/括号匹配的各种编辑器支持,甚至要帮忙运维社区的“生态环境”——如现实应用的各种基础依赖库,以及各种 guide/document/resource。
并非面向对象编程都需要 GC 来自动管理回收分配存储对象,实际上,面向对象只是指以 封装、抽象、继承、多态 为主的一种编程范式,“对象”可以理解为函数式里的闭包(closure),它包含了 this 里的数据以及依赖这些数据的操作(包括 get/set accessor),也即“方法(methods)”
对象可以被理解为 Ruby 里的 Kernel.send 方法,因为给它一个方法名,它就能“调用”这个方法。
https://zhuanlan.zhihu.com/p/108928060
编程是用语言提供的基础逻辑结构实现自己的程序,编程语言依据范式提供一套基础的编程方法。
实践里,程序的简洁性(可读性)、可复用性、灵活性、安全性、健壮性都是很重要的,其中编程语言主要负责简洁性和复用性。
按照抽象层次大体划分,编程分为表述式(imperative) 和 定义式(declarative)。
更细地,无结构编程(unstructured programming)、结构化编程(structured programming) 或者说过程式、函数式(functional)、面向对象(object-oriented)、关系式(relational) 也即逻辑式。
其中机器汇编属于无结构编程。现代电子计算机是一种表述式的机器,每个处理器核心按照顺序执行指令,指令可能读写存储器,也可能执行(带条件)的跳转,以移步到程序的另一个部分继续执行。
在冯·诺依曼的存储式程序计算机里,代码也是数据。这种“动态解释”的模型比较灵活,只要有“执行资源”和随便什么程序,计算机可以“一机多用”。
再广一点就涉及二进制、数据编码和转化、ABI、目标文件格式、程序分段、广义的虚拟化资源共享化了,这方面我们不需要知道太多。
编程语言的实现一般而言就是最少一个解释器(interpreter),本质上和计算器一致,都是递归的树型结构的后序遍历器。
稍微高级一点的会增加或者直接换为去实现一个编译器(compiler),编译器和解释器都会实现语言的抽象语义,但是—多了一个代码生成(codegen) 的步骤,也就是所谓的“编译期”。
不过现代对开发工具的要求也是很高的,所以实现也要配套至少代码高亮/括号匹配的各种编辑器支持,甚至要帮忙运维社区的“生态环境”——如现实应用的各种基础依赖库,以及各种 guide/document/resource。
并非面向对象编程都需要 GC 来自动管理回收分配存储对象,实际上,面向对象只是指以 封装、抽象、继承、多态 为主的一种编程范式,“对象”可以理解为函数式里的闭包(closure),它包含了 this 里的数据以及依赖这些数据的操作(包括 get/set accessor),也即“方法(methods)”
对象可以被理解为 Ruby 里的 Kernel.send 方法,因为给它一个方法名,它就能“调用”这个方法。
https://zhuanlan.zhihu.com/p/108928060
知乎专栏
为QQ机器人设计中文自然语言风格的编程语言(一)
为QQ机器人设计中文自然语言风格的编程语言(零)4.需求分析机器人主要面向人群是桌游玩家和设计师。而在此之前我其实也还做过一个桌游机器人:因为当初做这个机器人的时候是一边实现一边构思,没有好好规划,所以…