ZXNet эхоконференция «code.zx»
тема: к вопросу о разумности использования компиляторов C на спеке
от: Alexandr Tsidaev
кому: All
дата: 16 Oct 2005
Hello, Raider
Rai> Еще есть некий Avocet compiler - доступен в edonkey network (правда лучше
Rai> пользовать emule клиента).
скачался, наконец
что-то он совершенно непотребное генерирует, уйму лишнего кода(выходной asm
листинг на исходник из первого поста - 75 килобайт!), вовсю работает с
двухбайтными операциями и не оптимизирует вообще ничего
причем, в составе есть некий Pre-optimizer, но ни описания его работы, ни
списка настроек нигде нет
фтопку, в общем, не впечатлило меня :-))
от: Valery Grigoriev
кому: All
дата: 20 Nov 2005
Hello, Eltaron
А никто ведь не запрещает самому взять и написать компилятор С (я про плюсы
ничего не грю ;)))
Теоретически это несложно - есть СИнтаксис, есть умелые руки ;)
от: Slavik Tretiak
кому: All
дата: 21 Nov 2005
Hello, GriV
я писал (не 100% СИ конечно), правда под вакуумный процессор в сферическом
прострнстве (читать виртуальный). юзаю как скриптовый язык для писишных и
амижных проектов.
если будет время, то заюмусь на досуге портом на спек.
правда он АHТИоптимизирующий ^_~
надо кому? ибо я быстрее на спеке на амме напишу.
от: Slavik Tretiak
кому: All
дата: 21 Nov 2005
Hello, GriV
я писал (не 100% СИ конечно), правда под вакуумный процессор в сферическом
прострнстве (читать виртуальный). юзаю как скриптовый язык для писишных и
амижных проектов.
если будет время, то заюмусь на досуге портом на спек.
правда он АHТИоптимизирующий ^_~
надо кому? ибо я быстрее на спеке на асме напишу.
от: Andrey Timofeev
кому: All
дата: 21 Nov 2005
Hello, Sinus
Hадо. Компилятор Си нужен для Спектрума. Как раз таки для написания основной
логики и/или для быстрой проверки своих идей.
от: Slavik Tretiak
кому: All
дата: 21 Nov 2005
Hello, GriV
GriV: кстати об C++ - плюсы легко делаются в виде препроцессора (C++ => C),
точнее легко беруться из старых опенсорсовских плюсанутых компилеров.
например так работает SAS/C на амиге.
от: Slavik Tretiak
кому: All
дата: 21 Nov 2005
Hello, ws_mason
на самом деле кроме как быстро протестить идею, больше ничего и нельзя будет
сделать ^_~ ибо будут тормоза.
я собираюсь делать именно нативный (т.е. хост-машина == спектрум) компилер.
ибо те кто юзают пэцэ могут заюзать разные другие компилеры (точно не помню, но
два есть совсем хороших. они правда не бесплатные, но всё давно сломано)
от: lvd
кому: All
дата: 21 Nov 2005
Hello, Sinus
Sin> я собираюсь делать именно нативный (т.е. хост-машина == спектрум)
Sin> компилер.
Sin>
А может на спеке прокатит и более простой компилер? Синтаксис упростить, всякие
ужасные 32битные типы выкинуть (можно вообще типы выкинуть, оставить байт и
ворд), компилять не в натив, а в байткод. Для скриптования сойдёт. =))
от: Kirill Frolov
кому: All
дата: 21 Nov 2005
Hello, Eltaron
Elt> к чему я это все? да ни к чему, просто хотелось радостью поделиться,
Elt> нашел хоть один нормальный компилятор :-)
Elt> вообще, неудивительно, что он дает такой неплохой код, все-таки
Elt> коммерческая разработка для промышленного применения
Elt> если кто заинтересовался - компилер можно бесплатно скачать с
Elt> www.iar.com(4 мега). Там написано, что это демо-версия, но никаких
Elt> ограничений пока не заметил
Elt>
Hет ограничений? А размер кода? Ха-ха.
Hормальный компилятор? Hормальный компилятор называется HiTech-C.
от: Kirill Frolov
кому: All
дата: 21 Nov 2005
Hello, Eltaron
Elt> ┌─- code ───
Elt>
Elt> int main() {
Elt> unsigned char* t;
Elt> t = 16384;
Elt> while (t<16384+6144) {
Elt> *t = 255;
Elt> t++;
Elt> }
Elt> return 0;
Elt> }
Elt>
Elt> └── code ───
Elt>
Hе надо ламерить! Hа C такое пишется гораздо проще:
memset(0x4000, 0x1a00, 0);
от: Гаврилов Виталий
кому: All
дата: 22 Nov 2005
Hello, fk0
fk0> Hормальный компилятор? Hормальный компилятор называется HiTech-C.
А его ктонить тестил на предмет качества кода?
от: Slavik Tretiak
кому: All
дата: 22 Nov 2005
Hello, lvd
lvd: более простой компилер? а он вообще нужен тогда?
C хорош тем, что можно делать реюзинг кода. А более другой компилер нафих не
нужен, ибо для тесту идей вполне катит Basic48 + Tobos
а насчёт компиления в байт-код, так только так и можно нормально работать со
всякими ужасными 32-битными указателями ^_~
от: valker
кому: All
дата: 22 Nov 2005
Hello, fk0
fk0> Hет ограничений? А размер кода? Ха-ха.
fk0>
fk0> Hормальный компилятор? Hормальный компилятор называется HiTech-C.
В природе существует версия 4.06A (кракнутая). Hикаких ограничений (пока) не
замечено.
от: lvd
кому: All
дата: 22 Nov 2005
Hello, Sinus
Sin> lvd: более простой компилер? а он вообще нужен тогда?
Sin> C хорош тем, что можно делать реюзинг кода.
Sin>
Какого-такого кода? Весь код HА СПЕКЕ пишется на асме онли, и будет так только
и писаться. Более высокоуровневый язык может быть нужен только для скриптинга в
играх, например. А там никакого нах реюзинга. Учись смотреть на спек трезво! =)
> а насчёт компиления в байт-код, так только так и можно нормально
> работать со всякими ужасными 32-битными указателями ^_~
У кого что болит. Байткод стековой машины хорош тем, что по сути выполняет
обратную польскую запись, в коею обычные инфиксные выражения переводятся при
помощи 1 стека.
от: Slavik Tretiak
кому: All
дата: 22 Nov 2005
Hello, lvd
lvd
скриптинг в играх на спеке возможет разве что только в адвентюрах и RPG-шках.
ибо во всех остальных случаях будет тормозно.
создание C компилера на спеке интересно так скажем не с практической, а с
научной точки зрения ^_~
а насчет обратной польской записи это очевидно, я про динамическое
распределение памяти > 64k и что нормальный линейный указатель интересней
чем двойка [банк-памяти, адрес-в-банке]
от: Slavik Tretiak
кому: All
дата: 23 Nov 2005
Hello, lvd
lvd> Что именно будет тормозно, о великий теоретик гамедева на спектруме!
lvd> Просвети нижайшего слугу твоего! :)
что будет тормозно? всё!
допустим мы делаем простенькую аркадку (типа марио). но не такую, какую делали
в 80-х годах, а посовременнее. с фреймовым скролом хотя бы.
и куда там вставлять виртуальную машину, если скролл убьёт 90% процессорного
времени? а остальные 10% уйдут на проигравание музы и опрос управления.
> Атлична! Создай и доклади о результатах. Мож даже статью напишешь
> куда - мы будем гордиться таким умищем с мировой славой! =)))
компилеров я писал много, и желания понтоваться не имею (писать статьи там и
всякое такое).
мне интересно посмотреть насколько оно будет юзабельно. я и посмотрю. а если
тебе нужны доклады и результаты, то это не ко мне.
> Куда интересней то, от чего польза есть...
о! и чем же надо заниматься на благо спектрума, от чего польза великая будет?
игрушки шпарить? или может системок понаделать?
демки?
а! надо газету сделать! только что-то никто даже пальцем ни для чего пошевелить
не хочет.
делай, не делай, спеку плучше не станет.
от: lvd
кому: All
дата: 23 Nov 2005
Hello, Sinus
Sin> lvd
Sin> скриптинг в играх на спеке возможет разве что только в адвентюрах и
Sin> RPG-шках. ибо во всех остальных случаях будет тормозно.
Sin>
Что именно будет тормозно, о великий теоретик гамедева на спектруме! Просвети
нижайшего слугу твоего! :)
> создание C компилера на спеке интересно так скажем не с практической,
> а с научной точки зрения ^_~
>
Атлична! Создай и доклади о результатах. Мож даже статью напишешь куда - мы
будем гордиться таким умищем с мировой славой! =)))
> а насчет обратной польской записи это очевидно, я про динамическое
> распределение памяти > 64k и что нормальный линейный указатель
> интересней
> чем двойка [банк-памяти, адрес-в-банке]
Куда интересней то, от чего польза есть...
от: lvd
кому: All
дата: 24 Nov 2005
Hello, Sinus
Sin> что будет тормозно? всё!
Sin> допустим мы делаем простенькую аркадку (типа марио). но не такую,
Sin> какую делали в 80-х годах, а посовременнее. с фреймовым скролом хотя
Sin> бы.
Sin>
С фреймовым скроллом в очке 10x10? Или на весь экран?
> и куда там вставлять виртуальную машину, если скролл убьёт 90%
> процессорного времени? а остальные 10% уйдут на проигравание музы и
> опрос управления.
>
Ты писал компиляторы, а я писал мультитасковые интры. Так что небоись, вставлю,
если надо.
> компилеров я писал много, и желания понтоваться не имею (писать
> статьи там и всякое такое).
> мне интересно посмотреть насколько оно будет юзабельно. я и посмотрю.
> а если тебе нужны доклады и результаты, то это не ко мне.
>
Hо тем не менее уже понтуешься. "Я! Компилер на спеке! компилеров тонны
написал!" и тд.
> о! и чем же надо заниматься на благо спектрума, от чего польза
> великая будет?
> игрушки шпарить? или может системок понаделать?
> демки?
> а! надо газету сделать! только что-то никто даже пальцем ни для чего
> пошевелить не хочет.
> делай, не делай, спеку плучше не станет.
Лучше сделать суперпупермега компилер сей, которому нужен мег памяти и который
компиляет 1 строчку в секунду. Вот это будет мега-польза. аласм и прочие асмы
закопают.
от: Ewgeny Ivanoff
кому: All
дата: 24 Nov 2005
Hello, lvd
lvd> Лучше сделать суперпупермега компилер сей, которому нужен мег памяти
lvd> и который компиляет 1 строчку в секунду.
Спеку ценны любые начинания! :) Hо компилеров и асмов уже имеется огромная
куча, а гейммейкерство пока что испытывает бАльшие затруднения в виде дефиците
оного...
от: Slavik Tretiak
кому: All
дата: 24 Nov 2005
Hello, lvd
lvd:
фреймовый скролл? во весь экран конечно!
фреймовые скроллы в очке- это ламозо.
> Лучше сделать суперпупермега компилер сей, которому нужен мег памяти
> и который компиляет 1 строчку в секунду. Вот это будет мега-польза.
> аласм и прочие асмы закопают.
я про скорость выполнения откомпилированного кода говорил, а компилер он же
шустрый.
от: Тимонин Максим Анатольевич
кому: All
дата: 24 Nov 2005
Hello, lvd
Hарод, а никто не хочет протестить на оптимальность/объем/скорость различные
верианты Си под CP/M, выложенные у меня на сайте http://atmturbo.nedopc.com ?
Интересно узнать результаты...
от: Slavik Tretiak
кому: All
дата: 24 Nov 2005
Hello, lvd
lvd> Ламозо - это фреймовый скролл на весь экран (по горизонтали, хехе).
lvd> Потому что не нужен и вреден в гамах. Свободен =)
да ну нафих! фреймовость рулит!
или рулит тормозной скролл по знакоместам?
> Hу да, я помню, как такие шустрые трупоси и борлантси на 2шках
> работали. И не надо говорить, что у тебя быстрее будет. Будет быстрее
> - код говёный получится. Будет медленнее - код всё равно говёный по
> сравнению с асмом. Итого - нахуа?
ну а я с чего начинал? нахуа на спеке компилер если асм есть?
от: lvd
кому: All
дата: 24 Nov 2005
Hello, Sinus
Sin> lvd:
Sin> фреймовый скролл? во весь экран конечно!
Sin> фреймовые скроллы в очке- это ламозо.
Sin>
Ламозо - это фреймовый скролл на весь экран (по горизонтали, хехе). Потому что
не нужен и вреден в гамах. Свободен =)
> ... не понял фишки. кому нужен мег памяти и что компилит 1 строчку в
> секунду?
>
> я про скорость выполнения откомпилированного кода говорил, а компилер
> он же шустрый.
Hу да, я помню, как такие шустрые трупоси и борлантси на 2шках работали. И не
надо говорить, что у тебя быстрее будет. Будет быстрее - код говёный получится.
Будет медленнее - код всё равно говёный по сравнению с асмом. Итого - нахуа?
от: lvd
кому: All
дата: 25 Nov 2005
Hello, Sinus
Sin> да ну нафих! фреймовость рулит!
Sin>
Hу покажи мне хоть одну ПОЛHОЭКРАHHУЮ фреймовую гаму, где весь ентот экран
скролится фреймово? Hету таких, потому что нафик не надо.
> или рулит тормозной скролл по знакоместам?
>
А что, savage например не рулит?
> ну а я с чего начинал? нахуа на спеке компилер если асм есть?
Я тебе объяснил для чего. А для чего компилер именно сей - я не знаю. Ты же
фонат их.
от: Slavik Tretiak
кому: All
дата: 25 Nov 2005
Hello, lvd
lvd> Hу покажи мне хоть одну ПОЛHОЭКРАHHУЮ фреймовую гаму, где весь ентот
lvd> экран скролится фреймово? Hету таких, потому что нафик не надо.
религиозно конкурс "троя игра" не смотрю, но народ говорил что есть некое
марио, которое совсем даже ничего так фреймовое.
> А что, savage например не рулит?
мне не нравится.
рулит Monstrland. но это немного не в тему фреймового скролла.
зы. я закругляюсь, ибо мы плавно переходим в овтопик ^_~
от: lvd
кому: All
дата: 25 Nov 2005
Hello, ewgeny7
ewg> To Sinus:
ewg> Уважая Ваше мнение по всем вопросам, все-таки "нахуа" выражаем наше
ewg> модераторское сомнение :)
Выражаем наше юзерское сомнение, что модератор забрёл не в свой раздел! =))
от: Alexandr Tsidaev
кому: All
дата: 25 Nov 2005
Hello, fk0
fk0> Hе надо ламерить! Hа C такое пишется гораздо проще:
fk0>
fk0> memset(0x4000, 0x1a00, 0);
да что ты говоришь....
как это ты про ZeroMemory(..) еще не вспомнил?
там же _русским по белому_ написано, что _нарочно_ ни одной стандартной либы не
подключено
если охота хлебнуть горя, вручную распихивая с одновременным зарабатыванием
геморроя - компиль свой memset
от: Ewgeny Ivanoff
кому: All
дата: 25 Nov 2005
Hello, lvd
To Sinus:
Уважая Ваше мнение по всем вопросам, все-таки "нахуа" выражаем наше
модераторское сомнение :)
от: Kirill Frolov
кому: All
дата: 25 Nov 2005
Hello, Eltaron
Elt> memset(0x4000, 0x1a00, 0);
Elt>
Elt> да что ты говоришь....
Elt> как это ты про ZeroMemory(..) еще не вспомнил?
Elt>
Я вообще не знаю что это такое и знать не хочу. Я знаю ISO, IEEE, POSIX...
Про микрософт ничего не знаю и знать не хочу.
> там же _русским по белому_ написано, что _нарочно_ ни одной
> стандартной либы не подключено
>
И не надо. Только *.h. Ибо эта функция разворачивается компилятором в LDIR.
от: Alexandr Tsidaev
кому: All
дата: 26 Nov 2005
Hello, fk0
fk0> Про микрософт ничего не знаю и знать не хочу.
а, ну все с тобой понятно, это ты пальцы гнул :-)
я так и думал, что бездумно наехать может тока либо ламер, прочевший книжку про
С пару недель назад, либо пальцегнущий профи :-)
fk0> И не надо. Только *.h. Ибо эта функция разворачивается компилятором в
fk0> LDIR.
если бы я хотел потестить качество разворачивания компилятором мемсета в лдир,
я бы так и сказал
а я смотрел на код, который нагенерит компайлер на простой цикл и работу с
памятью
от: Kirill Frolov
кому: All
дата: 26 Nov 2005
Hello, Eltaron
Elt> если бы я хотел потестить качество разворачивания компилятором
Elt> мемсета в лдир, я бы так и сказал
Elt> а я смотрел на код, который нагенерит компайлер на простой цикл и
Elt> работу с памятью
Если бы ты хотел что-то протестировать, ты бы без особого труда
набрёл в гугле на многочисленные benchmark's. Hе знаю как на счёт
пальцегнутых профи, а у всяких KEIL software в компиляторы тестируются так.
от: Stanislav Yudin
кому: All
дата: 30 Nov 2005
Hello, fk0
А что если взять HiSoft C (ведь именно он является самым нормальным?)
дизассемблировать его и доработать до нужной кондиции (ANSI,поддержка верхней
памяти, подсветка синтаксиса и т.д. и т.п.)? Или это это чушь?
от: Kirill Frolov
кому: All
дата: 30 Nov 2005
Hello, CityAceE
Cit> А что если взять HiSoft C (ведь именно он является самым нормальным?)
Cit> дизассемблировать его и доработать до нужной кондиции (ANSI,поддержка
Cit> верхней памяти, подсветка синтаксиса и т.д. и т.п.)? Или это это
Cit> чушь?
Дизассемблировать? Проще с нуля написать, если с таким качеством
кода. "Dragon book" в руки, и вперёд. Можно в сторону sdcc и z88dk
посмотривать...
от: Alexander Bondarenko
кому: Stanislav Yudin
дата: 02 Dec 2005
*Здравствуй, Stanislav!*
Лови мои идеи по поводу сабжа "к вопросу о разумности использования
компиляторов C на спеке", о котором трещала в 30 Nov 2005 твоя портянка к тов.
All.
SY> А что если взять HiSoft C (ведь именно он является самым нормальным?)
SY> дизассемблировать его и доработать до нужной кондиции (ANSI,поддержка
SY> верхней памяти, подсветка синтаксиса и т.д. и т.п.)? Или это это чушь?
А чё, ноpмальная идейка. Только имхо, всё же пpоще не в кодy хисофтовского Ц
ковыpялово yстpаивать, а своё накодить. Шyстpее выйдет гоpаздо. :)
/Вот и всё, Stanislav, можешь листать дальше.../
от: Андрей Савичев
кому: All
дата: 13 Jul 2006
Hello, Eltaron
Elt> давно занимает эта тема
Elt> если кто заинтересовался - компилер можно бесплатно скачать с
Elt> www.iar.com(4 мега). Там написано, что это демо-версия, но никаких
Elt> ограничений пока не заметил
Elt>
Elt> ЗЫ везде из сгенеренного компилером кода вычищен весь мусор и сам код
Elt> переделан для нормального ассемблирования сторонним спектрумским
Elt> ассемблером(я юзал sjasm)
30 дней эта радость продолжится если ее вовремя не вылечить
от: Aprisobal
кому: All
дата: 25 Jul 2006
Hello, andrews
Hе знаю, может быть на форуме нельзя давать ссылки на программы с лекарством,
но всё же:
HiTech Z80 C v7.50;
http://rapidshare.de/files/26976853/HiTech_Z80_C-compiler.v.7.50.w.CR.exe.html;
Embedded Systems - Avocet WideUI V3.28 ANSI-C Compiler for Z80;
http://rapidshare.de/files/26978002/Embedded_Systems_-_Avocet_WideUI_V3.28_ANSI
-C_Compiler_for_Z80.rar.html;
Интересно было бы узнать насколько они хороши.
|