пʼятницю, 26 грудня 2008 р.

Создание исполняемых файлов в Ocaml 3.11.0.

Появилось немного времени, решил разобраться с Ocaml. Скачал новую версию для Mingw под Windows. Раньше использовал старые версии и тогда пробовал откомпилить файл в native код ничего не получалось, вылетали ошибки. Решил вернуться к этой проблеме.

Поиски в Интернете ничего толкового не дали, всё ограничиваеться только общими понятиями, типа ocamlopt -o  demo.exe demo.ml.

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


let rec fib n = if n < 2 then 1 else fib(n-1) + fib(n-2);;let main () =
  let arg = int_of_string Sys.argv.(1) in
  print_int(fib arg);
  print_newline();
 exit 0;;
main ();;

Хочу отметить, что после установки должна присутствовать переменная среды OCAMLLIB и в PATH должен быть прописан путь к каталогу BIN OCAML.

Первый вариант который запускаеться под ocamlrun.exe прошёл на ура. Командная строка выглядела следующим образом:

  ..\bin\ocamlc -o  fib.exe  fib.ml 

Создался exe модуль небольшого размера (39К).

Попробовал откомпилить программу в нативный код используя ocamlopt. У меня установлен Mingw 3.4.5. Бат файл выглядел так:

SET PATH=E:\MingW_345\bin;%PATH%;
..\bin\ocamlopt -o %1.exe %1.ml 

Получил следующие сообщение 

"flexlink" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
File "caml_startup", line 1, characters 0-1:
Error: Error during linking

В файле Readme.windows.txt прочитал что необходимо для создания компилятора. В одной из строк была указана ссылка на flexdll tool(реализация dlopen-like API для  Windows). Зайдя по ссылке нашёл там и flexlink. Сархива перекинул flexlink.exe в каталог bin ocaml.

После повторной компиляции ещё подкинул в каталог bin файл flexdll_mingw.o из архива.

Ещё одна попитка -- удалось создал исполняемый файл. Размер вырос и теперь составил 200к. Конечный вариант бат файла выглядит следующим образом:

SET PATH=E:\MingW_345\bin;%PATH%;
..\bin\ocamlopt -o %1.exe %1.ml -cclib -LE:\MingW_345\lib

Опция -cclib нужна для того чтобы компилятор ocaml видел библиотеки mingw.

После этого успеха (может для когото это уже пройденный этам) попробовал создать самодостаточный исполняемый модуль используя ocamlc (компилятор в байткод). Немного повозившись удалось собрать exe модуль на байт коде используя mingw. Бат файл выглядит так

SET PATH=E:\MingW_345\bin;%PATH%;
..\bin\ocamlc -o %1.exe %1.ml -custom -cclib -LE:\MingW_345\lib

Размер файла немного больше нативного 223К. 

Одной проблемкой меньше.



пʼятницю, 28 листопада 2008 р.

Euphoria 4.0 alpha

Вышел альфа релиз версии 4.00 языка программирования Euphoria.

Изменений очень много.  Посмотреть все изменения можна на странице Вики OpenEuphoria

К главным на мой взглад можна отнести следующие: добавлены новые команды (continue,retry,entry,break,goto) смысл их такой же что и в других языках, добавлен новая команда цыкла loop  do... until, добавлена конструкция switch ... end switch, команда enum - перечисление.

Добавлено множество новых функций, функции разбиты на отдельные библиотеки по назначению. Новые следующие: stack - работа со стеком, map - карты,string - стрингы, unicode - поддержка Unicode,sets - работа с множествами,regex- регулярные выражения ,socket - сокеты,task - многозадачность, sequence - работа с рядами. В библиотеку math добавлены новые функции ( ceil(), round_to(), round(), sign(), abs(), sum(), average(), min(), max(), deg2rad(), rad2deg(), log10(), atan2(), rand_range(), mod(), sinh, cosh, tanh, arcsinh, arccosh, arstanh). Добавлены новые опции командной строки транслятора, и много чего ещё.

Работа кипит.

Скачать нову. версию можна на официальном сайте Языка программирования Euphoria

середу, 26 листопада 2008 р.

Новый релиз языка программирования Gentee - 3.4.0

Вышля новая версия языка программирования Gentee 3.4.0.

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

Добавлены новые небольшие библиотеки. 

Исправлены баги виртуальной машины. Внесены изменения в редакторе форм и графической библиотеке vis.

Скачать последнюю версию можна сайте Gentee

Версия пока только под Windows.

понеділок, 25 лютого 2008 р.

Вышла новая версия Arc2, новый лисп диалект.

Вышла новая версия нового диалекта лиспа Arc2.

Изменений много поэтому повторять здесь не буду.

Почитать об основных изменениях можна на блоге Arc fn

Скачать новую версию можна с форума на arclanguage.org

Новая версия языка программирования Gentee 3.3.0

Вышля новая версия языка программирования Gentee 3.3.0.

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

Добавлено Gentee IDE с отладчиком.

Добавлена первая версия визуального редактора форм.

Исправлено много всяких баг.
Переделана виртуальна машина.
Уменьшин размер виртуальной машини (меньше 100К).

Скачать последнюю версию можна сайте Gentee

Обсуждения на главном форуме языка программирования Gentee

пʼятницю, 1 лютого 2008 р.

Новый релиз newLisp 9.3

Вышел новый релиз, скрыпт диалекта Лиспа , newLisp 9.3.

Среди изменений, на мой взгляд основные, следующие:

Поддержка GTK-Server 
введена собственная реализация ООП- FOOP Functional Object Oriented Programming.

Почитать основные изменения можна сайте языка программирования change

Arc, Новый Лисп диалект от Пола Грехема

29 января 2008 года, вышел первый релиз нового деалекта Лиспа от Пола Грехема (Paul Graham).

Дана версия компилируется и запускается из MzScheme.

Официальный сайт  Arc

четвер, 31 січня 2008 р.

Tango Manual and API Reference

Выложена документация по Tango в форматах CHM и PDF.
Спасибо dominiku


Скачать документация можна здесь TANGO_DOCS

понеділок, 21 січня 2008 р.

Новые версии DMD 1.026 и 2.010

Вышли новые версии языка программирования D .

Эта версия в основном исправляет ошибки.
К нововведениям можна отнести только то, що в даных версих добавлена возможность использование функций WinMain и DllMain в темплейтах смешивания (Template Mixins).
Прочитать об основных изменениях в версиях можна по следующим ссылкам:

версия 1.026
версия 2.010