Endo 0.1.0 Endo 0.1.0 Endo 0.1.0

Бостоялся ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΉ выпуск 0.1.0 кроссплатформСнной ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ языка Π² стилС F# Endo.

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ создан Π°Π²Ρ‚ΠΎΡ€ΠΎΠΌ ΠΈ основным Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ эмулятора Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° Contour Π½Π° языкС C++ (стандарт C++23) ΠΈ распространяСтся ΠΏΠΎ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΈ Apache 2.0.

Π’ этом выпускС:

  • Π―Π·Ρ‹ΠΊ
    • связывания, ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΡΠ²Π»ΡΡŽΡ‰ΠΈΠ΅ΡΡ нСизмСняСмыми ΠΏΡ€ΠΈ использовании let, ΠΈ измСняСмыС ΠΏΡ€ΠΈ использовании let mut;
    • Π²Ρ‹Π²ΠΎΠ΄ Ρ‚ΠΈΠΏΠΎΠ² (Hindley-Milner) β€” Ρ‚ΠΈΠΏΡ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‚ΡΡ, Π½ΠΎ ΠΈΡ… Ρ€Π΅Π΄ΠΊΠΎ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ явно;
    • сопоставлСниС шаблонов с условиями, дСструктуризация ΠΈ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ Β«ΠΈΠ»ΠΈΒ»;
    • дискриминированныС объСдинСния, записи ΠΈ встроСнныС Ρ‚ΠΈΠΏΡ‹ Option/Result;
    • Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ-ΠΊΠ°Ρ€Ρ€ΠΈ, частичноС ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΈ композиция Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ (>>, <<);
    • лямбда-выраТСния с синтаксисом Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»Π΅ΠΉ (_ + 1, _.field);
    • списочныС конструкции с Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°ΠΌΠΈ ΠΈ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°ΠΌΠΈ;
    • Β«Π»Π΅Π½ΠΈΠ²Ρ‹Π΅Β» вычислСния ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ;
    • оптимизация хвостовой рСкурсии;
    • ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚.
  • БрСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ
    • Language Server Protocol β€” ΠΏΠΎΠ»Π½ΠΎΡ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ сСрвСр LSP ($ endo β€”lsp) с диагностикой, Π°Π²Ρ‚ΠΎΠ΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ, подсказками ΠΏΡ€ΠΈ Π½Π°Π²Π΅Π΄Π΅Π½ΠΈΠΈ курсора, ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΎΠΌ ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡŽ, поиском ссылок, ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ, Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ, сСмантичСскими Ρ‚ΠΎΠΊΠ΅Π½Π°ΠΌΠΈ, дСйствиями Π½Π°Π΄ ΠΊΠΎΠ΄ΠΎΠΌ, встроСнными подсказками, Code Lens ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠΌ Π΄Ρ€ΡƒΠ³ΠΈΠΌ;
    • Debug Adapter Protocol β€” ΠΏΠΎΠ»Π½ΠΎΡ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ сСрвСр DAP ($ endo β€”dap) с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ Ρ‚ΠΎΡ‡Π΅ΠΊ останова, пошагового выполнСния, просмотра ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, вычислСния Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ дизассСмблирования;
    • Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ для VS Code β€” подсвСтка синтаксиса, интСграция с LSP/DAP, Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ ΠΊΠΎΠ΄Π° ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ° Π±Π΅Π· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ настройки.
  • ΠžΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ°
    • Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄, совмСстимоС с Bash: ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅, ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹, &&/||, ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ;
    • структурированныС встроСнныС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ β€” ls, ps, jobs, git log, git status, docker ps β€” Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ записи с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ;
    • Π΄Π²ΠΎΠΉΠ½Ρ‹Π΅ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Ρ‹: |> для ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, | для процСссов;
    • подстановка ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…/ΠΊΠΎΠΌΠ°Π½Π΄/процСссов, Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Ρ… скобок ΠΈ Ρ‚ΠΈΠ»ΡŒΠ΄Ρ‹;
    • Π±ΠΎΠ»Π΅Π΅ 110 встроСнных ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ языка;
    • Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ скриптов .endo с Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ.
  • Π Π΅ΠΆΠΈΠΌ «ИИ»-Π°Π³Π΅Π½Ρ‚Π°
    • встроСнная «ИИ»-ΠΏΠΎΠΌΠΎΡ‰ΡŒ, запускаСмая с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ символа # Π² пустом ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π°;
    • ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Ρ‹: Claude, OpenAI, OpenAI-совмСстимыС (Ollama, vLLM, LM Studio) ΠΈ Gemini;
    • ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ GGUF ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° llama.cpp;
    • 18 встроСнных инструмСнтов для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ, git, выполнСния ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ доступа ΠΊ Π²Π΅Π±-рСсурсам;
    • потоковая ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ² Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ Markdown.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: linux.org.ru

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ