The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Выпуск языка программирования Crystal 1.16

11.04.2025 10:57

Опубликован релиз языка программирования Crystal 1.16, разработчики которого пытаются совместить удобство разработки на языке Ruby с высокой производительностью приложений, свойственной языку Си. Синтаксис Crystal близок к языку Ruby, но не полностью совместим с ним, несмотря на то, что без переработки выполняются некоторые ruby-программы. Код компилятора написан на языке Crystal и распространяется под лицензией Apache 2.0.

В языке применяется статическая проверка типов, реализованная без необходимости явного указания типов переменных и аргументов методов в коде. Программы на Crystal компилируются в исполняемые файлы, с вычислением макросов и генерацией кода во время компиляции. В программах на языке Crystal допускается подключение биндингов, написанных на языке Си. Распараллеливание выполнения кода производится при помощи ключевого слова "spawn", которое позволяет запустить фоновую задачу в асинхронном режиме, не блокируя основной поток, в виде легковесных потоков, именуемых файберами (Fiber).

Стандартная библиотека предоставляет набор типовых функций, среди которых средства для обработки CSV, YAML, и JSON, компоненты для создания HTTP-серверов и поддержки WebSocket. В процессе разработки можно использовать команду "crystal play", которая формирует web-интерфейс (по умолчанию localhost:8080) для интерактивного выполнения кода на языке Crystal.

Основные изменения:

  • Добавлена экспериментальная поддержка запуска легковесных потоков (fiber) в отдельных контекстах исполнения (Execution Contexts), что позволяет добиться более эффективного параллельного выполнения задач - блокировка потоков в одном контексте, не приводит к остановке выполнения в другом.
    
       mt_context = Fiber::ExecutionContext::MultiThreaded.new("worker-threads", 4)
    
       10.times do
         mt_context.spawn do
          do_something
         end
       end
    
       gtk = Fiber::ExecutionContext::Isolated.new("Gtk") do
         Gtk.main
       end
       gtk.wait
    
  • В методе Slice.literal обеспечен вывод типа элементов, содержащихся в срезе (slice), и добавлена поддержка работы в интерпретаторе.
  • В макросах sizeof и alignof обеспечено предоставление информации о стабильных типах.
  • В стандартную библиотеку добавлены новые методы: Indexable#find, #find!, EventLoop#wait_readable и #wait_writable.
  • В компилятор добавлен длинный вариант опции "-o" - "--output" и реализована возможность указания каталога в вместо файла (имя файла будет выбрано в соответствии с именем файла с кодом).
  • В генератор документации добавлена возможность включения в документацию приватных и защищённых объектов, а также объектов в библиотечных обвязках (lib, fun, union, cstruct, external, type).
  • В методе "File.match?" задействован новый алгоритм сопоставления файловых путей, позволивший избавиться от некоторых проблем и ограничений. Например, теперь корректно обрабатываются экранирование символов (под маску "\\t" подпадает "\t", а не символ "t"), разделение путей (маска "a**" охватывает "ab", но не срабатывает для "ab/c", а маска "**/a" охватывает "a"), вложенные шаблоны (маска "{[}]}" охватывает "}"), диапазоны (маска "[a-]" охватывает "-").
  • В именах параметров определений (defs), макросов и блоков объявлены устаревшими суффиксы "?" и "!".
  • В методах Enumerable#sum и #product убрано автоматическое определение типа возвращаемого значения, если тип элементов является объединением (union). При вызове данных методов теперь нужно явно указывать тип, например, вместо "[1, 10000000000_u64].sum" следует писать "[1, 10000000000_u64].sum(0_u64)".
  • В HTTP::Request обеспечен корректный разбор частей URL.
  • Добавлена поддержка набора компиляторов LLVM 20.
  • Объявлены устаревшими вызовы LLVM::ABI и LLVM::TargetMachine#abi.

  1. Главная ссылка к новости (https://crystal-lang.org/2025/...)
  2. OpenNews: Выпуск языка программирования Crystal 1.6
  3. OpenNews: Доступна операционная система Lilith 0.0.5, написанная на языке Crystal
  4. OpenNews: Язык Crystal пытается совместить производительность Си и удобство Ruby
  5. OpenNews: Первый релиз языка программирования Ceylon, развиваемого компанией Red Hat
  6. OpenNews: Выпуск языка программирования Zig 0.11.0
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/63052-crystal
Ключевые слова: crystal
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (78) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.3, Аноним (3), 12:33, 11/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Конпиляется всё ещё только шлангом? Точнее, не конпиляется вообще..
     
  • 1.4, Аноним (4), 12:48, 11/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    До сих пор компилираует "Привет, Мир!" пять минут?
     
     
  • 2.38, Аноним (-), 15:55, 11/04/2025 [^] [^^] [^^^] [ответить]  
  • –4 +/
    >с высокой производительностью приложений, свойственной языку Си

    Читайть умеешь?

     
     
  • 3.59, Аноним (59), 19:06, 11/04/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Мусьё в силах понять разницу между производительностью работы программы и скоростью компиляции этой программы компилятором из исходников? И, кстати, скорость компиляции си-программ тоже так себе.
     
     
  • 4.62, ilowry (?), 19:24, 11/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Быстрее Си (не путать с Си++) только разве у Паскаля.
     
     
  • 5.65, Аноним (65), 20:37, 11/04/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    У си отвратительная скорость компиляции. https://www.opennet.dev/opennews/art.shtml?num=56449 Для ускорения компиляции нужны некоторые фундаметнальные изменения, типа отказа от взаиморекурсивного включения файлов. Кроме паскаля нужно обратить внимание как минимум на go и ocaml.
     
     
  • 6.78, Аноним (78), 01:29, 12/04/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    У окамла вообще кажется лучший компилятор, что был придуман.
     
  • 2.73, Аноним (65), 22:18, 11/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Да
     

  • 1.5, Аноним (5), 12:50, 11/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Это ещё что за def - end конструкции? Где блин фигурные скобочки?
     
     
  • 2.6, Аноним (6), 12:54, 11/04/2025 [^] [^^] [^^^] [ответить]  
  • –15 +/
    Да и то и другое что-то прошлый век, отступов вполне достаточно.
     
     
  • 3.7, Аноним (5), 12:56, 11/04/2025 [^] [^^] [^^^] [ответить]  
  • +11 +/
    Ты про питоновские отступы что ли? Абсолютно тупое решение. Стоит туда сюда код покопипастить, сразу всё сбивается.
     
     
  • 4.10, Аноним (6), 13:03, 11/04/2025 [^] [^^] [^^^] [ответить]  
  • –6 +/
    Зато приучает к порядку.
     
     
  • 5.42, User (??), 16:22, 11/04/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Не, ну если ваша работа "детей к порядку приучать" то что вы здесь-то делаете? Чат второй ясельной группы детсада 122 в whatdsup'е ведётся...
     
  • 4.12, Аноним (12), 13:12, 11/04/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Nim
     
  • 3.21, Аноним (65), 14:27, 11/04/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Отступы должны ставится автоматически, как на https://try.ocamlpro.com/. Вы ещё попросите программистов самостоятельно синтаксис подсвечивать, словно текст в ворде набирается, и с неправильной подсветкой - не компилировать.
     
     
  • 4.43, User (??), 16:27, 11/04/2025 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Второй раз мне уже про эти чудеса рассказывают, прям даже спросить хочется - а другие практические преимущества, окромя автоматической расстановки скобочек и отступов есть? Где и для чего можно с практической пользой написанным на - попользоваться? Глядишь - заценю/пойму чего...
     
     
  • 5.48, n00by (ok), 16:40, 11/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    MLDonkey на OCaml написан.
     
     
  • 6.50, User (??), 16:50, 11/04/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ээээто должно мне что-то сказать? Т.е. память мне подсказывает, что лет *цать назад я это название слышал, но и только.
     
     
  • 7.57, n00by (ok), 18:40, 11/04/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ну, не знаю, может надо с практической пользой закачать торрент.
     
     
  • 8.58, User (??), 18:47, 11/04/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А у этого клиента есть какие-то практические преимущества перед clientname ... текст свёрнут, показать
     
     
  • 9.61, n00by (ok), 19:15, 11/04/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Сейчас вряд ли, поскольку другие сети он поддерживает несколько разных вроде б... текст свёрнут, показать
     
     
  • 10.75, Аноним (75), 22:43, 11/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    вы бы еще Kazaa вспомнили бы ... текст свёрнут, показать
     
     
  • 11.81, n00by (ok), 08:53, 12/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Просто помню, что этот MLDonkey авторы OCaml написали с целью прорекламировать я... текст свёрнут, показать
     
     
  • 12.89, Аноним (89), 15:07, 12/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    А как для настоящего времени Что в нём устарело, чего не хватает ... текст свёрнут, показать
     
     
  • 13.96, Аноним (75), 16:36, 12/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    вопрос некорректный, вот к примеру, чего не хватает в русском языке - русских с... текст свёрнут, показать
     
  • 11.86, Вы забыли заполнить поле Name. (?), 13:00, 12/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    GNUtella ... текст свёрнут, показать
     
  • 5.69, Аноним (65), 21:42, 11/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    В исходном сообщении речь шла об оформлении блоков кода Какие ещё вы хотите пре... большой текст свёрнут, показать
     
     
  • 6.88, User (??), 13:50, 12/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Воу! Крутая штука, не то, что этот наш гвидобейсик - а то, что за 30 лет так ничего полезного и не (пере|на)писали - то, понятно, фигня.
    А если это чудо еще и в emacs под NixOS - то и вовсе, все дивчОнки мои будут!
     
     
  • 7.99, Аноним (65), 16:45, 12/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >А если это чудо еще и в emacs под NixOS

    Сенсей-сама, как вы догадались, что я пишу в эмаксе под NixOS?

     
  • 5.70, ИмяХ (ok), 21:48, 11/04/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Благодаря скобкам можно написать огромную программу в одну строку
     
  • 2.14, Профессор Кукушкин (?), 13:23, 11/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Там же, где и в Ruby -- взаимозаменяемы с do ... end.
     
  • 2.15, Аноним (3), 13:34, 11/04/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    ты ещё про пустые скобки у методов спроси,
    и вообще про все сишные "чипыжи"
     

  • 1.13, Аноним (13), 13:21, 11/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Fiber::ExecutionContext::MultiThreaded

    мода на многословность?

     
     
  • 2.60, Аноним (59), 19:10, 11/04/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    на понятность
     
     
  • 3.67, Аноним (13), 21:14, 11/04/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    пять плюс восемь равно тринадцать

    понятность

     

  • 1.16, Аноним (-), 13:51, 11/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    >в виде легковесных потоков, именуемых файберами (Fiber)

    Слово Fiber с аглицкого переводится как "клетчатка". Эти легковесные потоки должны переводится как "клетчатки".

     
     
  • 2.20, Аноним (12), 14:16, 11/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Целлюлоза
     
  • 2.22, Аноним (65), 14:27, 11/04/2025 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Волокно же!
     
  • 2.24, Аноним (24), 14:30, 11/04/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Fiber optics - клетчаточная оптика?
     
     
  • 3.56, Аноним (-), 18:07, 11/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    n00by считает что правильнее - нитчатая оптика.
     
     
  • 4.100, Аноним (75), 16:51, 12/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    нить - результат прядения, а прядение это:

    https://ru.wiktionary.org/wiki/прядение

    """
    процесс продольного складывания и спирального скручивания отдельных волокон для получения длинной и прочной нити
    """

    То есть волокна это кусочки такие, а точнее:

    https://ru.wiktionary.org/wiki/волокно

    """
    тонкая непряденая нить растительного, минерального или синтетического происхождения
    """

    И вот тут прикол, нить это пряденное волокно, волокно это непряденая нить :)
    Синоним волокна - фибра:

    https://ru.wiktionary.org/wiki/фибра

    """
    жилка, нерв, волокно животной ткани
    """

     
  • 2.49, n00by (ok), 16:42, 11/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    "Нить" это переводится, и потоки так называются.
     
     
  • 3.63, Аноним (59), 19:32, 11/04/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ну, вроде как "thread" - нить, а "fiber" - волокна, из которых состоит эта нить. И очень логично названо: тред - поток исполнения с аппаратной поддержкой в процессоре и в распространенных ОС обычно еще и вытесняющиеся по времени, а уже внутри потока куча файберов - сопрограмм с "кооперативной" многозадачностью (вытеснения нет по времени, передача управления следующему файберу происходит или добровольно явно или при входе в вызов ввода/вывода).
     
     
  • 4.83, n00by (ok), 09:19, 12/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Для английского действительно логично. С переводом возникает путаница, thread переводят и как "поток" (встречаю такое чаще), и как "нить". Последней вариант используют обычно, когда "легковесных потоков" нет. В любом случае, оно не клетчатка.

    ЗЫ у thread-а нет аппаратной поддержки в процессоре (IA32/AMD64) в смысле каких-то команд или специально предназначенных регистров. Под "аппаратно" понимается вызов планировщика по таймеру, может заодно меняться регистр fs или gs, через который адресуется thread local storage, но это "просто сегментный" регистр, без особого смысла как у ss (сегмент стека).

     
  • 2.94, Bottle (?), 15:41, 12/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Фибры.
     

  • 1.17, th3m3 (ok), 13:52, 11/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    И после этого, ещё Rust ругают за синтаксис?
     
     
  • 2.18, Аноним (5), 14:03, 11/04/2025 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Синтаксис у него может и не самый плохой, но отсутствие хорошей IDE портит всё впечатление.
     
     
  • 3.26, Аноним (24), 14:35, 11/04/2025 [^] [^^] [^^^] [ответить]  
  • –5 +/
    IDE нужна для джунов, вполне комфортно писать и без неё. Тут всё впечатление портит сам язык.
     
     
  • 4.28, Аноним (65), 14:40, 11/04/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Для любого крупного проекта нужна IDE, или как минимум языковой сервер
     
     
  • 5.29, th3m3 (ok), 14:43, 11/04/2025 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Нет.
     
     
  • 6.44, User (??), 16:29, 11/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Ага. Особенно, если окромя хелловрота ничего писать и не собираешься.
     
  • 5.32, Аноним (32), 15:32, 11/04/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    "Блокнот" и компилятор командной строки.
     
     
  • 6.74, Аноним (74), 22:32, 11/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    И мазохизм, конечно
     
  • 6.90, Аноним (89), 15:09, 12/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Emacs!
     
  • 5.76, YetAnotherOnanym (ok), 23:10, 11/04/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > языковой сервер

    Не напоминай про эту мерзость

     
     
  • 6.98, Аноним (65), 16:44, 12/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Это лучшее, что случалось с IDE. Теперь редактор можно развивать отдельно, а поддеркжу языка - отдельно, и не мирится с отвратительной IDE ради хорошей поддержки языка
     
  • 5.85, Аноним (85), 12:35, 12/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Есть crystalline, хотя проект лишь "пассивно обновляется" автором.

    https://github.com/elbywan/crystalline/blob/master/assets/small_demo.gif

     
  • 4.34, Аноним (34), 15:48, 11/04/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > вполне комфортно писать и без неё.

    Хелловорлды — да.

     
  • 2.41, Аноним (13), 16:17, 11/04/2025 Скрыто ботом-модератором     [к модератору]
  • –1 +/
     
  • 2.55, Аноним (55), 17:56, 11/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Да, у Crystal синтаксис гораздо лучше.
     

  • 1.25, Аноним (24), 14:34, 11/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –9 +/
    Надоели уже новости о pet-язычках, на которых никто кроме автора не пишет и писать не будет. В которых даже идей новых нет. Crystal, nim, zig, v, сколько этого мусора уже наплодили...
     
     
  • 2.30, Аноним (30), 15:08, 11/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    а где есть идеи?
     
  • 2.45, User (??), 16:30, 11/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Поезд уже ушёл, ага. Llm учить не на чем --> ненужно.
     
  • 2.53, anonimus (?), 17:22, 11/04/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Вас кто-то насильно заставляет их внимательно читать? Или если Вам не нужно, то и всем остальным должно быть не нужно? Какое-то детское-потребительское мышление
     
  • 2.87, Аноним (-), 13:14, 12/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Crystal, nim, zig, v, сколько этого мусора уже наплодили...

    Продолжайте список

     

  • 1.27, Аноним (65), 14:38, 11/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Интересно, какие это удобства писать на руби Скобки при вызове можно опускать, ... большой текст свёрнут, показать
     
     
  • 2.51, Аноним (51), 16:51, 11/04/2025 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Лучше уж бороться со скобочками в руби и опционвльно собираться в натив, чем бороться с питонистами, не понимающими, что такое map и упорно заставляющими писать типы в скриптухе.
     
     
  • 3.71, Аноним (65), 21:55, 11/04/2025 [^] [^^] [^^^] [ответить]  
  • –2 +/
    >и упорно заставляющими писать типы в скриптухе.

    Это позор питона, ведь код

    def test(a : int):
      print(a)
      
    test("a")

    работает без ошибок. Кроме того, питонистам пора открыть для себя Ocaml, там тип переменных нужно писать крайне редко, так как он выводится

    List.iter print_string ["hello "; "world"]

    let result = let sum a b = a + b in
      List.map sum [1; 2; 3]

    Хотя в этих строках тип данных не указан ни разу, компилятор знает тип каждой переменной

     
     
  • 4.82, Аноним (6), 08:55, 12/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Кому позор, а кому и регулярно помогает находить трудновыявимые баги до того, как они себя проявят. Да и в своём коде ещё ладно, а вот в коде зависимостей не всегда очевидно. Видимо, ты никогда не работал ни с чем сложнее привет мира, и не понимаешь, чем полезна индикация ожидаемого типа программисту (и не компилятору).
     
     
  • 5.97, Аноним (65), 16:42, 12/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >Кому позор, а кому и регулярно помогает находить трудновыявимые баги до того, как они себя проявят

    В нормальных языка будет ошибка компиляции, ещё до запуска программы. В питоне может-быть где-то промелькнёт ошибка линтера, однако далеко не факт, что её хоть кто-то исправит. Это первый момемнт.

    Второй момент - питон превращается в некую жабу, где нужно писать тип буквально на каждой строке.

     
     
  • 6.102, Аноним (6), 17:05, 12/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Никто не заставляет это делать, пихай, что хочешь. Тайпскрипт вон по понятным причинам лучше жс прижился в приличных проектах. В питоне система типов хоть и более адекватная, но без тайпхинтов не очень удобно (и всегда возможно) угадывать.
     

  • 1.64, Нуину (?), 19:33, 11/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Нужно что-то такое для питона. Да, я знаю, что есть mypyc, nuitka, codon и несолько других проектов.
     
     
  • 2.66, BrainFucker (ok), 21:08, 11/04/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Cython.
     
     
  • 3.68, Нуину (?), 21:36, 11/04/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Cython.

    Он более низкоуровневый чем сrystal?

     
     
  • 4.72, Аноним (65), 22:12, 11/04/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Он не только более низкоуровневый, у него гораздо слабее система типов. Для Crystal код типа этого

    10.times do
      a = Random.rand 10

      if a > 6
        b = "2"
      elsif a > 3
        b = "error"
      else
        b = 1
      end

      if b.is_a?(String)
        puts "b is string"
        c = b.to_i?
      else
        c = b
      end

      if !c.nil?
        puts c + 1
      end
    end

    не проблема, crystal позволяет присваивать переменной значения разных типов, и обрабатывать в зависимости от типа, cython так не сможет

     
  • 4.91, Аноним (89), 15:12, 12/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Более низкоуровневый, чем CPython. Но, наверное, не сильно более.
     
  • 2.80, Аноним (6), 07:43, 12/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Это всё не то (да и не даёт никакого профита), ты, видимо, ищешь shedskin или cython.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2025 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру