Нашли или выдавили из себя код, который нельзя назвать нормальным,
на который без улыбки не взглянешь?
Не торопитесь его удалять или рефакторить, — запостите его на
говнокод.ру, посмеёмся вместе!
решил пойти по накатанному пути и добавил видеоконтроллер, пока только монохромная битовая карта 144x100, но большего и не надо
сабж выводит на экран что отпрыгивает от стен, простое умножение компонента вектора на -1
думаю подрубить суперскалярности, добавить какой нибудь MEMSET как инструкцию, PUSHA, POPA, всякие удобные ENTER, LEAVE, LOOP, ну и арифметические наконец добавить все
Самомудифицируемый код без поддержки железа -- плохо:(
Всегда ведь можно написать
if (hoho == pepe) {
writeToCodePage(0xFF);
} else {
writeToDataPage(0xFF);
}
// или даже так
* (100500 + pepe) = 0xFF; //поди знай куда там адрес в рантайме резолвница
А есть ли процессоры, где запись кода и запись данных нужно разными инструкциями делать? Тогда легко можно было бы поддержать самомудифицрвн кд.
супрасинтаксическая заумь: при формальной, грамматической правильности конструкций, составленных из обычных слов, высокая степень неопределённости возникает на уровне референции — проще говоря, остается принципиально неясным, о чём идёт речь.
ARM'ы видел? Отдельных инструкций для push, pop, call, ret и пр. нет, зато есть команды для записи/чтения с пост/преинкрементом, и для перехода BX REG. И ещё условия почти во все инструкции закодировать можно)
Правда BL (а ля CALL) только в R14 пишет, и адрес разврата самому в стек пушить/попать надо.
Жабаёбы вроде тоже так пытаются делать, и укакиваются.
Я не знаю как в растишке, но по идее если ты можешь построить граф зависимостей, то проблем быть не должно. Или там в одном файле может быть 100500 классов?
digitalEugene # 0
digitalEugene # 0 ⇈
bormand # 0 ⇈
Пришло время для jit-реконпеляции.
digitalEugene # 0 ⇈
bormand # 0 ⇈
Отловишь запись и джитнешь кусок заново.
guest # 0 ⇈
bormand # 0 ⇈
У меня пока такая идея -- в каждую инструкцию записи добавлять проверку по битмапе (бряки тут не нужны т.к. хостовый код мы сами высрали).
Да, это оверхед. Но странички могут ещё больше оверхеда дать если код и данные не разнесены.
В любом случае быстрее интерпретатора будет.
guest # 0 ⇈
Всегда ведь можно написать
А есть ли процессоры, где запись кода и запись данных нужно разными инструкциями делать? Тогда легко можно было бы поддержать самомудифицрвн кд.
Или это и будет Фон Нейман?
bormand # 0 ⇈
guest # 0 ⇈
bormand # 0 ⇈
guest # 0 ⇈
bormand # 0 ⇈
На мелких вроде было три -- флешка, память и I/O. Причём регистры видно как память.
На больших судя по всему растянули шину к памяти до 16 бит и добавили MMIO.
bormand # 0 ⇈
Это вам не сраный ibm pc.
guest # 0 ⇈
digitalEugene # 0 ⇈
guest # 0 ⇈
bormand # 0 ⇈
Там пинов не хватит, придётся внешние микрухи вешать для кнопок и дисплея.
MPA3b # 0 ⇈
guest # 0 ⇈
MPA3b # 0 ⇈
[email protected] # 0 ⇈
guest # 0 ⇈
g "детская логическая машина ДЛМ"
kcalbCube # 0 ⇈
bormand # 0 ⇈
guest # 0 ⇈
digitalEugene # 0 ⇈
ObeseYoung # 0 ⇈
guest # 0 ⇈
MPA3b # 0 ⇈
MPA3b # 0 ⇈
супрасинтаксическая заумь: при формальной, грамматической правильности конструкций, составленных из обычных слов, высокая степень неопределённости возникает на уровне референции — проще говоря, остается принципиально неясным, о чём идёт речь.
Монада — это моноид в категории эндофункцторов
666_N33D135 # 0 ⇈
MPA3b # 0 ⇈
MPA3b # 0 ⇈
фон Нейман — вместе
jit для фон Неймана как раз и возможен
MPA3b # 0 ⇈
Тут вообще никаких проблем
666_N33D135 # 0 ⇈
Говно. Сделай универсальные интсрукции, котторые это с указанным регистром проделывают
kcalbCube # 0 ⇈
666_N33D135 # 0 ⇈
Правда BL (а ля CALL) только в R14 пишет, и адрес разврата самому в стек пушить/попать надо.
bormand # 0 ⇈
В thumb есть. Из-за более компактного кодирования пришлось пожертвовать универсальностью регистров.
kcalbCube # 0 ⇈
я слышал это вырезали в x64
kcalbCube # 0 ⇈
и если ret можно закодировать одним байтом, то loadincrement это уже три байта, что будет медленее в софтварном исполнении.
O4epegHou_nemyx # 0 ⇈
OMuKPOH # 0 ⇈
digitalEugene # 0
ObeseYoung # 0
bormand # 0
[email protected] # 0 ⇈
digitalEugene # 0 ⇈
bormand # 0 ⇈
digitalEugene # 0 ⇈
в отличии от little c compiler
bormand # 0 ⇈
guest # 0 ⇈
bormand # 0 ⇈
У них там была квантовая неопределённость и прога иногда собиралась неправильно. Из-за этого отключали. Возможно, что уже пофиксили.
MPA3b # 0 ⇈
guest # 0 ⇈
В нашем проекте, к болью вынужден я признать, делать полный клин и ребилд приходится раз в неделю
bormand # 0 ⇈
Видимо поэтому и не могут запинать.
guest # 0 ⇈
Я не знаю как в растишке, но по идее если ты можешь построить граф зависимостей, то проблем быть не должно. Или там в одном файле может быть 100500 классов?
Fike # 0 ⇈
digitalEugene # 0 ⇈
guest # 0 ⇈
bormand # 0 ⇈
Noodles # 0 ⇈
kcalbCube # 0 ⇈
666_N33D135 # 0 ⇈
bormand # 0 ⇈
ObeseYoung # 0 ⇈
guest # 0 ⇈
Просто тогда придется парсить и копулировать каждый раз при запуске
kcalbCube # 0 ⇈
OMuKPOH # 0 ⇈
guest # 0
guest # 0