Dimittis de lingua programmandi Haxe 4.2

Dimissio Haxe 4.2 toolkit praesto est, quae includit multi-paradigma altum-gradum programmandi linguae eiusdem nominis cum validis typingibus, compilator crucis et bibliothecae functionum vexillum. Project translationem ad C++, HashLink/C, JavaScript, C#, Java, PHP, Python et Luae adiuvat, necnon compilationem ad JVM, HashLink/JIT, Flash et Neko bytecode, cum accessu ad facultates indigenas cuiusque scoporum suggestuum. Codex compilator sub licentia GPLv2 distributus est, et bibliotheca vexillum et HashLink et Neko machinae virtuales effectae Haxe sub licentia MIT licentiati sunt.

Lingua est expressio cum typing valido ordinatur. Objectum ordinatum, genericum et munus programmandi artes adiuvantur. Syntaxum Haxe prope ecMAScriptum est et eam extendit cum notis ut typing statice, auto-typus illationis, exemplaris congruens, generica, iterator-substructio loramenta, AST macros, GADT (Generalized Types datae Algebraicae), rationes abstractae, structurae anonymae, faciliores. definitiones vestit, expressiones pro compilatione conditionali, metadata ad agros, classes et locutiones, chorda interpolationis ('nomen meum nomen $'), parametri genus ('new Main ("foo") et multi alii. class Test { static function main() { final people = [ "Elisabeth" => "Programming", "Joel" => "Design" ]; nam (nomen => officium in hominibus) { trace('$nomen$ officium pro vivi!'); } } }

Novae lineamenta in versione 4.2:

  • Declarantes static variabiles et functiones in gradu moduli, sine necessitate eas in genere involvere.
  • Firmamentum "classica" abstracta classes et functiones.
  • Nativa exsecutio functionum variadicarum pro omnibus suggestis scopis (haxe.Rest) et additis argumenti dilatationis operantis "f(...ordinate)".
  • Exsecutio eventus ansa pro singulis filis ("sys.thread.Thread.events").
  • "@:inheritDoc" metadata ad genus hereditarium / documentum agri.
  • Methodus obruendi subsidia methodorum externarum in omnibus suggestis clypei.
  • Procuret conditorem suum genus subesse ad metadata "@:forward.new" abstracto utens.
  • Adiecit "EIs" constructor ad "haxe.macro.Expr".
  • Facultatem ad genus abstractum variantem cum "@:forward.variance".
  • Repraesentatio "quaelibet" typus ut "Dynamica" cum variatione coniungens.
  • Aliquas formas exceptiones fundamentales ad sarcinam "haxe.exceptions" addidit.
  • Support applicandi metadata cum variabiles declarantes.
  • Munus "StringTools.unsafeCharAt" pro iteratione chorda adhibita.
  • coaevus (interprete): ligaturas ad "libuv" in sarcina "eval.luv".
  • coaevus: ligamenta ad exsequendam patriam "Int64" et "UInt64" per "eval.integers" sarcina.
  • cs: UDP nervum exsequendum.
  • cs: "cs.Syntax" moduli pro inline insertis ex C# codice.
  • jvm: Addidit "-D jvm.dynamic-level=x" vexillum ad regendum numerum optimizationum generatorum pro codice dynamico. 0 = nullus, 1 = campus lege/ scribe ipsum, 2 = modum clausuras tempore compilati.
  • java, jvm: subsidium "--java-lib <directory>" vexillum.
  • python: filo api deducendi.

Emendationes generales:

  • "expr is SomeType" non requirit involuti parenthesi.
  • Prius auxit pro "@:usura" extensiones typus.
  • Permittit usum extensionum static generum per "super".
  • Facultas metadata ad "@:noDoc" agros.
  • Genus "Tabula" abstractum transitivum fit.
  • Support for "@:native" on enum constructores.
  • Support for "@:using" on declarations type ("typedefs").
  • Multilinei errores utuntur "..." ut praepositione pro lineis subsequentibus.
  • Genus illatio retractata est, structurae anonymae melius convertuntur ad rationes expressas et "clausa" cum munus complet.
  • Genus functionum sine argumentis inferendo pro "Void->...".
  • Munus keyword permittitur ut nomen sarcina.
  • Improved inlining of objects.
  • cs: Addidit subsidium .NET 5.0.
  • cpp: Support for native constructors for external classes.
  • php: Added "php.Syntax.customArrayDecl" ad declarandum ordinatam indigenam.
  • php: methodi externae renovatae pro variis functionibus et generibus.
  • php: Optimized implementation of anonymous structures.
  • hl: Skip compilationem si nullae sunt mutationes modulorum.
  • lua: Usura "hx-lua-simdjson" ad parse json.
  • jvm: Reducitur CPU onus in "sys.thread.Lock" exsecutionem.
  • js: Improved compibility with Google Clausura Compiler.
  • Nulla Salus: Considera "@:nullSafety(Off)" cum variabiles declarans: "var @:nullSafety(Off) v".

Additio etiam VSCode editori renovata est ad novam compilatoris versionem, in qua innuitur cum generationi absentium agrorum instrumentorum, classium simplicium et abstractorum, necnon methodorum proprietatum.

Source: opennet.ru