|
02.04.2014, 23:28
|
#1
|
Оператор ЭВМ
Регистрация: 06.02.2012
Адрес: Equestria
Сообщений: 43
Написано 7 полезных сообщений (для 10 пользователей)
|
mp3CC под Linux
Поправил исходники компилятора версии 3.5, теперь они собираются под линукс. Так же написал простенький bash-скрипт для удобной компиляции. Благодаря этому всему выяснилось, что большенство проблем не из за самого компилятора, а из за mp3ide.exe. Скрипт удачно компилирует модули, которые в mp3ide.exe приводят к конфликтной ситуации(и не только это), да и снимает ограничения накладываемые самой ide, так как весь процесс можно контроллировать самому.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
03.03.2015, 04:31
|
#2
|
Оператор ЭВМ
Регистрация: 07.11.2008
Сообщений: 29
Написано 6 полезных сообщений (для 7 пользователей)
|
Ответ: 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 байт.
Кто-нибудь разбирался, в чем дело?
Последний раз редактировалось Pyth_ON, 03.03.2015 в 04:32.
Причина: Исправление опечатки
|
(Offline)
|
|
03.03.2015, 07:32
|
#3
|
AnyKey`щик
Регистрация: 29.12.2013
Сообщений: 13
Написано 8 полезных сообщений (для 11 пользователей)
|
Ответ: mp3CC под Linux
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
04.03.2015, 15:32
|
#4
|
Оператор ЭВМ
Регистрация: 07.11.2008
Сообщений: 29
Написано 6 полезных сообщений (для 7 пользователей)
|
Ответ: mp3CC под Linux
Helltar, оу, замечательно!
Смотрю, у тебя есть собранный mp3CC, но без исходников, вносил ли ты в них какие-либо изменения?
Закинь на github пожалуйста если что-то правил
|
(Offline)
|
|
04.03.2015, 16:11
|
#5
|
AnyKey`щик
Регистрация: 29.12.2013
Сообщений: 13
Написано 8 полезных сообщений (для 11 пользователей)
|
Ответ: mp3CC под Linux
Последний раз редактировалось Helltar, 07.03.2015 в 13:25.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
04.03.2015, 17:01
|
#6
|
Мастер
Регистрация: 03.05.2010
Адрес: Подмосковье
Сообщений: 1,218
Написано 438 полезных сообщений (для 790 пользователей)
|
Ответ: mp3CC под Linux
Помню, много лет назад можно было выбрать, какие Real числа использовать - с фиксированной точкой или с плавающей.
Нельзя туда ещё одну реализацию real добавить - обёртку над обычным float или double?
На старенькой нокии вычисления на java с double были раз в 100 быстрее паскалевских real. Если надо, могу эту обёртку написать, только не знаю, как её прикрутить к языку и ide
P.S. хотя.... паскалем ещё кто-то пользуется?
P.P.S. У меня есть идея сделать маленькую реализацию lua - подобного языка, но на java, чтобы при помощи рефлексии можно было обращаться к классам и методам андроида. И ide заточить, чтобы было _удобно_ программировать на телефоне или планшете - например, не писать весь код, а иметь возможность на сенсорном экране расставлять что-нибудь типа UML диаграмм (или как Blueprint unreal engine), а уж что останется - писать ручками, но с нормальным автодополнением, чтобы не тратить время на тыкание по мелким кнопкам и исправление опечаток. Потенциальных конкурентов не нашёл.
Но один я не потяну)
__________________
О¯О ¡¡¡ʁɔvʎнdǝʚǝdǝu dиW
|
(Offline)
|
|
04.03.2015, 17:17
|
#7
|
AnyKey`щик
Регистрация: 29.12.2013
Сообщений: 13
Написано 8 полезных сообщений (для 11 пользователей)
|
Ответ: mp3CC под Linux
P.S. хотя.... паскалем ещё кто-то пользуется?
|
На MIDletPascal'е под старуху JavaME единицы людей еще пишут, но я там сборку под Android прикрутил, правда пока в зачаточном состоянии.
|
(Offline)
|
|
04.03.2015, 23:02
|
#8
|
Оператор ЭВМ
Регистрация: 07.11.2008
Сообщений: 29
Написано 6 полезных сообщений (для 7 пользователей)
|
Ответ: mp3CC под Linux
Сообщение от Helltar
|
Вот это - единственный источник исходного кода, который нормально работает без изменений в main.c:358.
Хотя если произвести вышеописанные мной изменения в коде из первого поста этой темы, то можно получить такую же работоспособную версию.
Но в обоих случаях нужно закомментировать в test.pas для успешной сборки тестового мидлета.
Однако меня по-прежнему смущают символы @ и следующие за ними цифры в консольном выводе mp3CC, похоже придется вникнуть в код глубже.
|
(Offline)
|
|
06.03.2015, 21:20
|
#9
|
AnyKey`щик
Регистрация: 29.12.2013
Сообщений: 13
Написано 8 полезных сообщений (для 11 пользователей)
|
Ответ: mp3CC под Linux
Однако меня по-прежнему смущают символы @ и следующие за ними цифры в консольном выводе mp3CC, похоже придется вникнуть в код глубже.
|
Ну так это compile_progress, я его тупо удаляю с вывода.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
09.03.2015, 03:00
|
#10
|
Оператор ЭВМ
Регистрация: 07.11.2008
Сообщений: 29
Написано 6 полезных сообщений (для 7 пользователей)
|
Ответ: mp3CC под Linux
Helltar, ясно, я подумал что это какой-то прогресс, но выглядит он как некорректная работа.
Да и зачем он вообще нужен, едва ли найдется исходник на MP который бы собирался дольше нескольких секунд.
Только сообщения об ошибках на мой взгляд стоит выводить, а вообще это workaround, нужно добавить в компилятор quiet-режим без вывода (или опционально вывод только ошибок), а лишь с кодами выхода и удалить нафиг этот прогресс.
|
(Offline)
|
|
24.03.2015, 23:05
|
#11
|
Оператор ЭВМ
Регистрация: 06.02.2012
Адрес: Equestria
Сообщений: 43
Написано 7 полезных сообщений (для 10 пользователей)
|
Ответ: mp3CC под Linux
Pyth_ON, либо вы писали слишком мало кода на мп, либо не использовали структуры, либо имеете слишком мощный процессор.
На одноядерном атлоне64 было время, когда код общим размером где-то в десяток тысяч строк собирался около 10 минут.
|
(Offline)
|
|
01.06.2015, 06:17
|
#12
|
AnyKey`щик
Регистрация: 27.03.2015
Сообщений: 1
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: mp3CC под Linux
Здравствуйте уважаемые форумчане! Хочу поблагодарить всех кто принимает участие в разработке MidletPascal, очень часто выручает меня этот инструмент. В связи с моим переходом на Linux я переписал IDE. Решил выложить в сеть, может кому понадобится https://cloud.mail.ru/public/CiAp/LPq9SXjvi
Будет время - допишу если что...
|
(Offline)
|
|
02.06.2015, 23:13
|
#13
|
AnyKey`щик
Регистрация: 29.12.2013
Сообщений: 13
Написано 8 полезных сообщений (для 11 пользователей)
|
Ответ: mp3CC под Linux
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 16:52.
|