forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Разработка MIDlet Pascal (http://forum.boolean.name/forumdisplay.php?f=127)
-   -   mp3CC под Linux (http://forum.boolean.name/showthread.php?t=19070)

DeaDCore 02.04.2014 23:28

mp3CC под Linux
 
Вложений: 1
Поправил исходники компилятора версии 3.5, теперь они собираются под линукс. Так же написал простенький bash-скрипт для удобной компиляции. Благодаря этому всему выяснилось, что большенство проблем не из за самого компилятора, а из за mp3ide.exe. Скрипт удачно компилирует модули, которые в mp3ide.exe приводят к конфликтной ситуации(и не только это), да и снимает ограничения накладываемые самой ide, так как весь процесс можно контроллировать самому.

Pyth_ON 03.03.2015 04:31

Ответ: mp3CC под Linux
 
К сожалению segfault'ит на main.c:358, там вообще что-то невообразимое, копирование строки во ЧТО-ТО:
Код:

strcpy(source_file_name, source_file + pos + 1);
Я не совсем понимаю смысл этого кода, но при изменении до:
Код:

strcpy(source_file_name, source_file);
компилятор начинает работать, но судя по выводу в консоль не вполне корректно:
Код:

$ ./build
source_file_name "./src/olol.mpsrc"
output_path "./classes"
fname "./src/olol.mpsrc"
Detecting units of './src/olol.mpsrc'...
@7
@14
@30
@53
@61
^0u_b
@67
source_file_name "./src/test.pas"
output_path "./classes"
fname "./src/test.pas"
Detecting units of './src/test.pas'...
@6
@11
@16
^0uni
@19
source_file_name "./src/u_a.pas"
output_path "./classes"
fname "./src/u_a.pas"
Detecting units of './src/u_a.pas'...
@7
@12
@30
@52
@61
^0u_b
@67
source_file_name "./src/u_b.pas"
output_path "./classes"
fname "./src/u_b.pas"
Detecting units of './src/u_b.pas'...
@7
@12
@30
@52
@61
^0u_a
@67
source_file_name "./src/olol.mpsrc"
output_path "./classes"
fname "./src/olol.mpsrc"
Compiling './src/olol.mpsrc'...
@7
@14
@30
@53
@61
@67
@92
@100
source_file_name "./src/test.pas"
output_path "./classes"
fname "./src/test.pas"
Compiling './src/test.pas'...
@6
@11
@16
[Pascal Error] ./src/test.pas(2): E448 failed to load 'uni' library/unit
@19
@25
@33
@34
@37
@41
@45
@46
@55
@56
@68
@71
@73
@74
@83
@89
@90
@94
@95
@100

Но при этом уже не segfault'ит и даже генерирует olol.class размером в 308 байт, а так же olol.bsf, u_a.bsf и u_b.bsf размером в 0 байт.
Кто-нибудь разбирался, в чем дело?

Helltar 03.03.2015 07:32

Ответ: mp3CC под Linux
 
https://github.com/Helltar/AMPASIDE :3

Pyth_ON 04.03.2015 15:32

Ответ: mp3CC под Linux
 
Helltar, оу, замечательно!
Смотрю, у тебя есть собранный mp3CC, но без исходников, вносил ли ты в них какие-либо изменения?
Закинь на github пожалуйста если что-то правил ;)

Helltar 04.03.2015 16:11

Ответ: mp3CC под Linux
 
https://github.com/DeaDDooMER/mp3CC-linux

Igor 04.03.2015 17:01

Ответ: mp3CC под Linux
 
Помню, много лет назад можно было выбрать, какие Real числа использовать - с фиксированной точкой или с плавающей.
Нельзя туда ещё одну реализацию real добавить - обёртку над обычным float или double?
На старенькой нокии вычисления на java с double были раз в 100 быстрее паскалевских real. Если надо, могу эту обёртку написать, только не знаю, как её прикрутить к языку и ide
P.S. хотя.... паскалем ещё кто-то пользуется?

P.P.S. У меня есть идея сделать маленькую реализацию lua - подобного языка, но на java, чтобы при помощи рефлексии можно было обращаться к классам и методам андроида. И ide заточить, чтобы было _удобно_ программировать на телефоне или планшете - например, не писать весь код, а иметь возможность на сенсорном экране расставлять что-нибудь типа UML диаграмм (или как Blueprint unreal engine), а уж что останется - писать ручками, но с нормальным автодополнением, чтобы не тратить время на тыкание по мелким кнопкам и исправление опечаток. Потенциальных конкурентов не нашёл.
Но один я не потяну)

Helltar 04.03.2015 17:17

Ответ: mp3CC под Linux
 
Цитата:

P.S. хотя.... паскалем ещё кто-то пользуется?
На MIDletPascal'е под старуху JavaME единицы людей еще пишут, но я там сборку под Android прикрутил, правда пока в зачаточном состоянии.

Pyth_ON 04.03.2015 23:02

Ответ: mp3CC под Linux
 
Цитата:

Сообщение от Helltar (Сообщение 293805)

Вот это - единственный источник исходного кода, который нормально работает без изменений в main.c:358.
Хотя если произвести вышеописанные мной изменения в коде из первого поста этой темы, то можно получить такую же работоспособную версию.
Но в обоих случаях нужно закомментировать
Код:

uses uni;
в test.pas для успешной сборки тестового мидлета.
Однако меня по-прежнему смущают символы @ и следующие за ними цифры в консольном выводе mp3CC, похоже придется вникнуть в код глубже. :user:

Helltar 06.03.2015 21:20

Ответ: mp3CC под Linux
 
Цитата:

Однако меня по-прежнему смущают символы @ и следующие за ними цифры в консольном выводе mp3CC, похоже придется вникнуть в код глубже.
Ну так это compile_progress, я его тупо удаляю с вывода.

Pyth_ON 09.03.2015 03:00

Ответ: mp3CC под Linux
 
Helltar, ясно, я подумал что это какой-то прогресс, но выглядит он как некорректная работа.
Да и зачем он вообще нужен, едва ли найдется исходник на MP который бы собирался дольше нескольких секунд.
Только сообщения об ошибках на мой взгляд стоит выводить, а вообще это workaround, нужно добавить в компилятор quiet-режим без вывода (или опционально вывод только ошибок), а лишь с кодами выхода и удалить нафиг этот прогресс.

DeaDCore 24.03.2015 23:05

Ответ: mp3CC под Linux
 
Pyth_ON, либо вы писали слишком мало кода на мп, либо не использовали структуры, либо имеете слишком мощный процессор.
На одноядерном атлоне64 было время, когда код общим размером где-то в десяток тысяч строк собирался около 10 минут.

AligatorBkmz 01.06.2015 06:17

Ответ: mp3CC под Linux
 
Здравствуйте уважаемые форумчане! Хочу поблагодарить всех кто принимает участие в разработке MidletPascal, очень часто выручает меня этот инструмент. В связи с моим переходом на Linux я переписал IDE. Решил выложить в сеть, может кому понадобится https://cloud.mail.ru/public/CiAp/LPq9SXjvi
Будет время - допишу если что...

Helltar 02.06.2015 23:13

Ответ: mp3CC под Linux
 
AligatorBkmz, http://vk.com/ampaside?w=wall-82903523_133 :luxlogo:


Часовой пояс GMT +4, время: 15:04.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot