编程语言 Haxe 4.1 发布

可得到 工具包发布 斧头4.1,其中包括具有强类型的同名多范式高级编程语言、交叉编译器和标准函数库。 该项目支持翻译为 C++、HashLink/C、JavaScript、C#、Java、PHP、Python 和 Lua,以及编译为 JVM、HashLink/JIT、Flash 和 Neko 字节码,并可访问每个目标平台的本机功能。 编译代码 分发者 根据 GPLv2 许可证,以及为 Haxe 开发的标准库和虚拟机 哈希链接 и 在麻省理工学院的许可下。

语言是 表达导向 具有较强的打字能力。 支持面向对象、通用和函数式编程技术。 Haxe 语法接近 ECMAScript 并且 展开 其功能包括静态类型、自动类型推断、模式匹配、泛型、基于迭代器的 for 循环、AST 宏、GADT(广义代数数据类型)、抽象类型、匿名结构、简化数组定义、条件编译表达式、将元数据附加到字段、类和表达式、字符串插值(“'我的名字是 $name'”)、类型参数('new Main (“foo”)') 和 多得多.

类测试{
静态函数 main() {
最终人=[
“伊丽莎白”=>“编程”,
“乔尔”=>“设计”
];

for (name => people 中的工作) {
trace('$name 靠$工作谋生!');
}
}
}

4.1版本新功能:

  • 添加尾递归优化。
  • 添加了新的统一 API 用于异常处理。
  • 结构“try {} catch(e) {}”可以作为“try {} catch(e: haxe.Exception) {}”的简写。
  • 向 eval 解释器添加了 SSL 支持。
  • 目标 JVM 不再被视为实验性的。
  • 对于语言服务器协议,添加了对“转到实现”和“查找引用”功能的支持。
  • 改进了生成代码中临时局部变量的命名。 删除了多余的“返回”; 在没有返回值的箭头函数中。
  • 字段上允许访问组合(get、默认)(仅限 getter、默认赋值行为)。
  • 允许字段使用递增和递减运算符 抽象类型.
  • 使用匿名迭代器改进了 for 循环的内联。
  • Node.js:改进了 ES5 的 StringMap 实现。
  • js:let 变量的生成已添加到编译器选项“-D js-es=6”中,ES6 类的生成已得到改进。
  • lua:“StringIterator”优化,错误处理改进。
  • php:针对基本类型优化了“Std.isOfType”。
  • php:生成的数组现在实现本机接口“Iterator”、“IteratorAggregate”、“Countable”。
  • cs:添加了元数据“@: assemblyMeta”和“@: assemblyStrict”。
  • python:向匿名对象添加了“__contains__”的实现
    和“__getitem__”,这允许它们在生成的代码中用作字典。

  • jvm:由于在对象用作匿名结构(阻止动态属性查找)的情况下访问类型化函数和生成附加接口的新方法,显着提高了性能:
    编程语言 Haxe 4.1 发布

标准库的改进:

  • 添加了“Array.contains”功能。
  • 添加了“Array.keyValueIterator”,它实现了数组的键值迭代(“for (key => value in array)”)。
  • 添加了约束类型“haxe.Constraints.NotVoid”。
  • “findIndex”和“foldi”函数已添加到“Lambda”类中。
  • 实现了“haxe.ds.HashMap”的“数组访问”(通过“arr[i]”访问)和键值迭代。
  • jvm:实现了“StringMap”、“sys.thread.Lock”、“sys.thread.Thread”的 JVM 特定版本。
  • java/jvm:“haxe.crypto”模块使用“MD5”、“SHA-1”和“SHA-256”的本机实现。
  • 宏:添加了“haxe.macro.Context.containsDisplayPosition(pos)”。
  • nullsafety:“严格”模式现在被视为单线程; 添加了“StrictThreaded”模式。
  • “Std.is”已被弃用,取而代之的是“Std.isOfType”。
  • 添加了在闭包中使用没有值的局部变量时的警告。
  • js:“untyped __js__(code, args)”已弃用,替换为“js.Syntax.code(code, args)”。
  • php/neko:“neko.Web”和“php.Web”已被弃用,稍后将移至“hx4compat”库。

在下一个版本中 有计划的:

  • 包管理器改进 哈克塞利卜.
  • 基于异步系统API 库夫.
  • 协程。
  • 声明模块化静态函数和变量而不创建类(已在夜间构建中可用)。

来源: opennet.ru

添加评论