Для Си-программиста (знание Lua приветствуется)

Дмитрий17 лет в сервисе
Данные заказчика будут вам доступны после подачи заявки
18.08.2014

Существует компактный OpenSource скриптовый движок Lua

Необходимо исследовать его Си-исходники на предмет использования стандартных/сторонник библиотек и понять, почему одна версия существенно отличается от другой по размеру

Теперь предметно:

Версия 5.1.1 (32 *.с файла): http://www.lua.org/ftp/lua-5.1.1.tar.gz

Версия 5.1.5 (32 *.с файла): http://www.lua.org/ftp/lua-5.1.5.tar.gz

Версия 5.2.0 (34 *.с файла): http://www.lua.org/ftp/lua-5.2.0.tar.gz

Версия 5.2.3 (34 *.с файла): http://www.lua.org/ftp/lua-5.2.3.tar.gz

Размер библиотеки нужно мерить, предварительно скомпилировав её в Win32 Dll. Пожелание по компилятору - gcc, IDE - Code::Blocks. Если я ничего не путаю, то в опциях сборки есть возможность использовать Windows CRT. Так вот нужно компилировать без него.

Для начала нужно выбрать оптимальную версию среди 5.1.1 и 5.1.5, и оптимальную версию среди 5.2.0 и 5.2.3.

Если разница по размеру между 5.1.1 и 5.1.5 в пределах 5% - то берём старшую версию, иначе младшую.

С версиями 5.2.0 и 5.2.3 аналогично.

Разница по размеру между версиями 5.1 и 5.2, если не ошибаюсь - значительная, больше 100кб

Задача номер 1) - определить, чем именно вызвана такая огромная разница в размере

По результату исследования размера я выберу основную версию, и можно будет приступать к задаче номер 2) - исследовать какие стандартные/сторонние библиотеки include-ятся и какие там функции вызываются. Их должно быть немного, но они есть. Это работа с файлами (fopen, fread например), памятью (например malloc), консоль, OS-specific. На выходе хочу получить текстовое описание, желательно с указанием мест, где те или иные библиотеки инклюдятся, где те или иные функции вызываются.

Ещё несколько слов:

- для сравнения файлов я использую Beyond Compare. Если не знаете чем сравнивать файлы - используйте его

- я не думаю, что задача сложна. Для специалиста среднего уровня дня-двух хватит за глаза

- бюджет обговаривается

- данная задача - лишь исследование; Если сотрудничество интересно - будем модифицировать библиотеку, разумеется за отдельный бюджет

Заявки фрилансеров