GNU Guile 3.0 ืฉื•ื—ืจืจ

ื”ืชืจื—ืฉ ืฉื—ืจื•ืจ GNU Guile 3.0, ื™ื™ืฉื•ื ื—ื•ืคืฉื™ ืฉืœ ืฉืคืช ืชื›ื ื•ืช ืคื•ื ืงืฆื™ื•ื ืœื™ืช ืชึธื›ึฐื ึดื™ืช, ื”ืชื•ืžืš ื‘ื™ื›ื•ืœืช ืœื”ื˜ืžื™ืข ืงื•ื“ ื‘ืืคืœื™ืงืฆื™ื•ืช ื‘ืฉืคื•ืช ืชื›ื ื•ืช ืื—ืจื•ืช. ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘-Guile ื›ืฉืคื” ืœืคื™ืชื•ื— ื”ืจื—ื‘ื•ืช ื™ื™ืฉื•ืžื™ื, ื”ื’ื“ืจืช ืชืฆื•ืจื” ืื• ืคื™ืชื•ื— ืจื›ื™ื‘ื™ื ืœื—ื™ื‘ื•ืจ ื”ืคืจื™ืžื™ื˜ื™ื‘ื™ื ื”ืฉื•ื ื™ื ืฉืžืกืคืงืช ื”ืืคืœื™ืงืฆื™ื”. Guile ื”ื™ื ืฉืคืช ืคื™ืชื•ื— ื”ื”ืจื—ื‘ื” ื”ืจืฉืžื™ืช ืœืžืขืจื›ืช ื”ื”ืคืขืœื” GNU.

ื‘ืœื‘ ื’ื•ื•ื™ืœ ื ืžืฆืืช ืžื›ื•ื ื” ื•ื™ืจื˜ื•ืืœื™ืช ื™ืขื™ืœื” ื”ืžื‘ืฆืขืช ืกื˜ ื ื™ื™ื“ ืฉืœ ื”ื•ืจืื•ืช ืฉื ื•ืฆืจื• ืขืœ ื™ื“ื™ ืžื”ื“ืจ ืžื™ื•ื—ื“ ืœืžื™ื˜ื•ื‘. ื”ืžื›ื•ื ื” ื”ื•ื™ืจื˜ื•ืืœื™ืช ืฉืœ Guile ืžืฉืชืœื‘ืช ื‘ืงืœื•ืช ืขื ืงื•ื“ ื™ื™ืฉื•ื ื‘-C ื•-C++. ื‘ื ื•ืกืฃ ืœืฉืคืช Scheme, ืขื‘ื•ืจื” ืžื™ื•ืฉืžืช ืชืžื™ื›ืช ืžืคืจื˜ R5RS, R6RS ะธ R7RS, ืคืจื•ื™ืงื˜ Guile ืคื™ืชื— ืžื”ื“ืจื™ื ืœืฉืคื•ืช ืื—ืจื•ืช, ื›ื’ื•ืŸ ECMAScript, Emacs Lisp ื•-Lua (ื‘ืคื™ืชื•ื—). ื”ื—ื‘ื™ืœื” ื›ื•ืœืœืช ืกืคืจื™ื™ืช ืžื•ื“ื•ืœื™ื ื”ืžื™ื™ืฉืžืช ืคื•ื ืงืฆื™ื•ืช ืฉื™ืจื•ืช ืกื˜ื ื“ืจื˜ื™ื•ืช, ื›ืžื• ืขื‘ื•ื“ื” ืขื ืคืจื•ื˜ื•ืงื•ืœ HTTP, ื ื™ืชื•ื— XML ื•ืฉื™ืžื•ืฉ ื‘ืฉื™ื˜ื•ืช ืชื›ื ื•ืช ืžื•ื ื—ื” ืขืฆืžื™ื.

ื—ื™ื“ื•ืฉ ืžืจื›ื–ื™ ื‘-GNU Guile 3.0 ื”ื™ื” ื”ืฆื’ืชื• ืฉืœ ืžื”ื“ืจ JIT, ื‘ื ื•ืกืฃ ืœืžืชื•ืจื’ืžืŸ ื•ืœืงื•ืžืคื™ื™ืœืจ ื‘ืชื™ื ืฉื”ื•ืฆืขื• ื‘ืขื‘ืจ, ื”ืžื‘ื•ืฆืข ื‘ืžื›ื•ื ื” ื•ื™ืจื˜ื•ืืœื™ืช ืžื™ื•ื—ื“ืช ื”ืงืฉื•ืจื” ืœืืคืœื™ืงืฆื™ื” ื‘ืฆื•ืจื” ืฉืœ ืกืคืจื™ื™ื”. JIT ืžืืคืฉืจ ืœื™ืฆื•ืจ ืงื•ื“ ืžื›ื•ื ื” ืชื•ืš ื›ื“ื™ ืชื ื•ืขื” ื•ืžืื™ืฅ ืžืฉืžืขื•ืชื™ืช ืืช ื”ื‘ื™ืฆื•ืข ืฉืœ ื™ื™ืฉื•ืžื™ Guile (ื‘ื“ื™ืงื•ืช ืžืจืื•ืช ืžื”ื™ืจื•ืช ืฉืœ ืขื“ ืคื™ 4). ื”ืžื”ื“ืจ JIT ืชื•ืžืš ื‘ืืจื›ื™ื˜ืงื˜ื•ืจื•ืช x86-64, i686, ARMv7 ื•-AArch64.

ืขื•ื“ ื›ืžื” ืฉื™ืคื•ืจื™ื:

  • ืชืžื™ื›ื” ื‘ืžืคืจื˜ ื”ืฉืคื” ื”ื—ื“ืฉ ืฉืœ Scheme R7RS ื•ืžื•ื“ื•ืœ ื”ืกืคืจื™ื™ื” ื”ืžื•ื’ื“ืจื™ื ื‘ื•;
  • ื”ืžื›ื•ื ื” ื”ื•ื™ืจื˜ื•ืืœื™ืช ืฉืœ Guile ืžืกืคืงืช ืชืžื™ื›ื” ื‘ืงื•ื“ ื‘ืชื™ื ื‘ืจืžื” ื ืžื•ื›ื” ื™ื•ืชืจ, ื”ืžืืคืฉืจืช ืื•ืคื˜ื™ืžื™ื–ืฆื™ื•ืช ืžืชืงื“ืžื•ืช;
  • ืชืžื™ื›ื” ื‘ืฉื™ืœื•ื‘ ื‘ื™ืŸ ื”ื’ื“ืจื•ืช ื•ื‘ื™ื˜ื•ื™ื™ื ืคื ื™ืžื™ื™ื (ืœื“ื•ื’ืžื”, "(ื”ื’ื“ื™ืจ _ (begin (foo) #f))");
  • ืžื•ืฆืข ื™ื™ืฉื•ื ืžืื•ื—ื“ ืฉืœ ืกื•ื’ ื ืชื•ื ื™ื ืžื•ื‘ื ื” ("ืจืฉื•ืžื•ืช");
  • ืคืจื™ืžื™ื˜ื™ื‘ื™ื ืœื˜ื™ืคื•ืœ ื‘ื—ืจื™ื’ื™ื (ื–ืจื•ืง ื•ืชืคื™ืกื”) ืขื•ื‘ื“ื• ืžื—ื“ืฉ;
  • ื›ืจื™ื›ื•ืช ืžื•ื’ื“ืจื•ืช ืขื‘ื•ืจ ืชื—ื‘ื™ืจ ืžื•ืจื—ื‘ "else", "=>", "..." ื•-"_";
  • ื‘-http-request, http-get ื•ื ื”ืœื™ื ืื—ืจื™ื ื”ืงืฉื•ืจื™ื ืœืœืงื•ื— ื”ืื™ื ื˜ืจื ื˜, ื ื•ืกืคื” ื”ืืคืฉืจื•ืช ืœื”ื•ืจื™ื“ ืชื•ื›ืŸ ื‘ืขืจื•ืฅ ืชืงืฉื•ืจืช ืžื•ืฆืคืŸ ื‘ืืžืฆืขื•ืช TLS ืขื ืื™ืžื•ืช ืชืขื•ื“ื” ื ื›ื•ืŸ.

ืžืงื•ืจ: OpenNet.ru

ื”ื•ืกืคืช ืชื’ื•ื‘ื”