Хорошо - при опции -d будет добавляться заголовок в духе:
fprintf(outfile, "LIBRARY %s\n\n", basename(argv[IN]));
fputs("EXPORTS\n", outfile);
cObj - ещё одна программа для разработчиков
С опцией -c я явно погорячился, 54.2 выполняется успешно,
НО ни CEdit, ни TINYPAD не видят данных, хотя друг с другом обмениваются успешно
Здесь
- либо я "забыл" правильно оформить посылаемую информацию (что скорее всего точно верно);
- либо CEdit c TINYPAD используют legacy interface не использующий sysfn 54.
Скорее всего и то и другое ...
Конечно я не использовал и половину времени - "ещё не вечер",
но считаю правильным оставить -c для версии 0.3 :
TODO (ver.0.3)
помещение информации в карман:
-с
[а также поместить кнопку и <Ctrl + C> для той же функции]
заголовок .def файла:
[поместить кнопку <Ctrl + D> переключения отображения .def заголовка]
обмен информацией по IPC:
-i
Вывод информации об использовании при отсутствии командной строки
(возможно при наличии опции -h)
А для версии 0.2:
TODO (ver.0.2)
(1) Закомментировать нерабочий код для опции -c
(2) Обкатать на реальном компьютере
(3) Проверить вывод ошибок в случае, когда окно не отображается
(4) Выслушать и как-то учесть пожелания команды разработчиков Kolibri OS
Код и исполняемый файл: https://drive.google.com/file/d/17_FUrb ... sp=sharing
Исполняемый файл cobj_c находится в папке bin .
Видео сессии использования: https://drive.google.com/file/d/1D1_ty ... sp=sharing
Надеюсь Google у вас не заблокирован и у меня с cсылками всё получилось правильно ...
И да - я переключаюсь на экзекуцию ассемблерного варианта (считается, что GUI версия - это оригинал).
НО ни CEdit, ни TINYPAD не видят данных, хотя друг с другом обмениваются успешно
Здесь
- либо я "забыл" правильно оформить посылаемую информацию (что скорее всего точно верно);
- либо CEdit c TINYPAD используют legacy interface не использующий sysfn 54.
Скорее всего и то и другое ...
Конечно я не использовал и половину времени - "ещё не вечер",
но считаю правильным оставить -c для версии 0.3 :
TODO (ver.0.3)
помещение информации в карман:
-с
[а также поместить кнопку и <Ctrl + C> для той же функции]
заголовок .def файла:
[поместить кнопку <Ctrl + D> переключения отображения .def заголовка]
обмен информацией по IPC:
-i
Вывод информации об использовании при отсутствии командной строки
(возможно при наличии опции -h)
А для версии 0.2:
TODO (ver.0.2)
(1) Закомментировать нерабочий код для опции -c
(2) Обкатать на реальном компьютере
(3) Проверить вывод ошибок в случае, когда окно не отображается
(4) Выслушать и как-то учесть пожелания команды разработчиков Kolibri OS
Код и исполняемый файл: https://drive.google.com/file/d/17_FUrb ... sp=sharing
Исполняемый файл cobj_c находится в папке bin .
Видео сессии использования: https://drive.google.com/file/d/1D1_ty ... sp=sharing
Надеюсь Google у вас не заблокирован и у меня с cсылками всё получилось правильно ...
И да - я переключаюсь на экзекуцию ассемблерного варианта (считается, что GUI версия - это оригинал).
Сразу предупреждаю, я так удачно реализовал опцию -c.
что Clipview падает намертво ... [Edit: была старая версия, новая бы не упала]
Edit:
Уже разобрался с -с , как только нашёл пример, так и разобрался ...
Сообщил, чтобы кто-то не бросился мне помогать - не тратил зря время.
Так что всё-таки направляюсь в направлении ver.0.3 - и как же я -i буду тестировать ?..
Однако выстрел выявил сразу два бага:
- ядро по идее не должно принимать некорректный контейнер; [Edit: но у разработчиков ядра есть своё мнение, и это правильно]
- Clipview не должен вылетать, получив неожиданные данные на вход. [Edit: а новая версия и не вылетает]
Edit2: (v.0.3 "пре релиз")
Демонстрация использования:
https://drive.google.com/file/d/1ufAvrm ... sp=sharing
Исходники и исполняемый файл (в bin/):
https://drive.google.com/file/d/1UdH45G ... sp=sharing
что Clipview падает намертво ... [Edit: была старая версия, новая бы не упала]
Edit:
Уже разобрался с -с , как только нашёл пример, так и разобрался ...
Сообщил, чтобы кто-то не бросился мне помогать - не тратил зря время.
Так что всё-таки направляюсь в направлении ver.0.3 - и как же я -i буду тестировать ?..
Однако выстрел выявил сразу два бага:
- ядро по идее не должно принимать некорректный контейнер; [Edit: но у разработчиков ядра есть своё мнение, и это правильно]
- Clipview не должен вылетать, получив неожиданные данные на вход. [Edit: а новая версия и не вылетает]
Edit2: (v.0.3 "пре релиз")
Демонстрация использования:
https://drive.google.com/file/d/1ufAvrm ... sp=sharing
Исходники и исполняемый файл (в bin/):
https://drive.google.com/file/d/1UdH45G ... sp=sharing
Last edited by Valery on Sun Jul 31, 2022 4:31 pm, edited 1 time in total.
ядро не производит проверку содержимого контейнера, кроме размера вроде, проверка на содержимое происходит в программе, которая получает эти данные. Какую версию clipwiev вы используете и какие данные туда вводите(полностью всю структуру)?
Похоже ничего не проверяет ... Размер то можно было проверить ... Ну ладно: хозяин - барин.ядро не производит проверку содержимого контейнера, кроме размера вроде
Вводил текст по прямой, без контейнера ...какие данные туда вводите
Разведка боем: решил попробовать и ... ядро приняло, а clipview вылетел намертво.
Но версия была устаревшая - прошлогодняя,
в версии из (почти) последнего дистрибутива clipview не падает а выдаёт информацию,
что тип данных неизвесте: то есть работает корректно.
(Я прямо дальше писал - что не разобрался, потому и оказалось:
- поведение ядра соответствует замыслу разработчиков (не баг);
- баг устаревшей версии в новой версии полностью устранён.
Так что простите пожалуйста, если кого нечаянно обидел. )
ничего, бывает, но всё же стоит сделать копирование в соответствии с документацией(если кратко то записать перед самой строкой 3 dword, в первом длина сообщения, включая эти данные, во втором тип содержимого, то есть 0, в третьем кодировка, 0-utf8 1-866(ASCII) 2-cp1251)
Уже сделано - в "пре релизе" копирование работает в соответствии с документацией.но всё же стоит сделать копирование в соответствии с документацией
(о чём я сразу сообщил: "Уже разобрался с -с , как только нашёл пример, так и разобрался ...", но видимо невнятно ...)
Дополненная ассемблерная версия уже на подходе и там -c тоже работает (в соответствии с документацией).
В любом случае спасибо за помощь !
Уже готов пре релиз версии CObj на ассемблере:
Код: https://drive.google.com/file/d/1Yz45GM ... sp=sharing
Демонстрация работы: https://drive.google.com/file/d/181-u6 ... sp=sharing
От изначальной версии (автор Albom) остались лишь код загрузки console.obj, да инициализация с "финализацией".
Ввиду введения дополнительных возможностей и более 50% собственного кода, считаю вправе
- не упоминать ни себя, ни автора изначальной версии в заголовке программы (есть упоминание в тексте кода);
- установить "лицензию" Public Domain.
P.S.
Замечу, что пре релиз подразумевает условно законченную работу (с удовлетворительным качеством - "на троечку").
Так что задачу с версией на C также удалось выполнить в срок (который завтра истекает) - "на троечку".
[смотрите ранее по теме]
Для ассемблерной версии "троечка" уже есть, но есть и более чем 20 дней срока.
Основная проблема - для тестирования IPC требуется писать отдельную программу (либо довести shell).
, только надо убрать расширение .kex .Код: https://drive.google.com/file/d/1Yz45GM ... sp=sharing
Демонстрация работы: https://drive.google.com/file/d/181-u6 ... sp=sharing
От изначальной версии (автор Albom) остались лишь код загрузки console.obj, да инициализация с "финализацией".
Ввиду введения дополнительных возможностей и более 50% собственного кода, считаю вправе
- не упоминать ни себя, ни автора изначальной версии в заголовке программы (есть упоминание в тексте кода);
- установить "лицензию" Public Domain.
P.S.
Замечу, что пре релиз подразумевает условно законченную работу (с удовлетворительным качеством - "на троечку").
Так что задачу с версией на C также удалось выполнить в срок (который завтра истекает) - "на троечку".
[смотрите ранее по теме]
Для ассемблерной версии "троечка" уже есть, но есть и более чем 20 дней срока.
Основная проблема - для тестирования IPC требуется писать отдельную программу (либо довести shell).
ох как опций много стало) это круто, надо только предусмотреть хэлпу в самой программе
The best way to predict the future is to create it.
Для ассемблерной версии есть минимальная подсказка (если вызвать без аргументов [cObj] или с -h [cObj -h] (сейчас только что прокрутил в голове алгоритм и возник хороший вопрос, а сработает ли так? [cObj xxx -h] точно сработает - надо будет проверить)).
C версия в этом случае выводит более развёрнутый текст но несколько корявый.
Учту в версии 0.4 - постараюсь улучшить текст в C - версии и перенести его также в ассемблерную версию.
TODO1: надо поправить алгоритм так, чтобы первый аргумент до опции -f , не начинающийся с '-' был интерпретирован как
имя obj - файла, (сейчас имя obj-файла обязательно должно идти самым первым)
C версия в этом случае выводит более развёрнутый текст но несколько корявый.
Учту в версии 0.4 - постараюсь улучшить текст в C - версии и перенести его также в ассемблерную версию.
TODO1: надо поправить алгоритм так, чтобы первый аргумент до опции -f , не начинающийся с '-' был интерпретирован как
имя obj - файла, (сейчас имя obj-файла обязательно должно идти самым первым)
Главная проблема преодолена - появилась возможность протестировать опцию -i :
https://drive.google.com/file/d/11_Q7a5 ... sp=sharing
Теперь остаётся править баги ...
P.S.
Самым лёгким способом оказалось сделать fork программы shell и прикрутить там взаимодействие с вызываемыми программами по IPC.
https://drive.google.com/file/d/11_Q7a5 ... sp=sharing
Теперь остаётся править баги ...
P.S.
Самым лёгким способом оказалось сделать fork программы shell и прикрутить там взаимодействие с вызываемыми программами по IPC.
круто! ждем релизов
The best way to predict the future is to create it.
Пришла пора бета релиза (с этого момента разработка постепенно переходит в стадию поддержки) ...
Процесс совершенствования - это бесконечный процесс, но надо вовремя остановится.
Если не потребуется серьёзно переделывать программу, то после полугода версия будет изменена на 1.0 - полноценный релиз.
C-версия (полностью автономная): Архив с исходным кодом: https://drive.google.com/file/d/1mKNOu ... sp=sharing
Демонстрационное видео: https://drive.google.com/file/d/1mTMBjv ... sp=sharing
Лицензия: Public Domain
FASM-версия (70% зависимлсть от console.obj, но работает и без, хотя "пользователи вряд ли захотят использовать её без console.obj"): Архив с исходным кодом:https://drive.google.com/file/d/1_SQjdb ... sp=sharing
Демонстрационное видео:https://drive.google.com/file/d/1jMAiSW ... sp=sharing
Лицензия: Public Domain
В видео используется изменённая версия программы shell: Лицензия GNU GPL требует распространения только предоставив иходный код:
https://drive.google.com/file/d/1ba08b5 ... sp=sharing
С-версия вряд ли будет Вам нужна, а вот насчёт ассемблерной - хорошо бы было чтобы кто-то из команды разработчиков предоставил услугу по размещению исходников в автосборку ... Макросы здесь не используются, локализации тоже нет, так что размещение должно быть тривиальным.
P.S.
(1) Поддержка коммуникации по имеющемуся протоколу shell (с использованием разделяемой памяти) мною отвергается - она в разы сложнее, этот протокол вроде как нигде не используется (IPC правда тоже), она также shell специфичная (правда это означает, что придётся мне взяться за shell - в изменённой версии, в частности, доведены до ума обёртки системных вызовов - иначе они просто не собираются компилятором clang);
(2) C-версия только на 30% больше, чем FASM-версия пр том, что самостоятельно занимается графическим интерфесом. Так что если код на ЯВУ написан грамотно - 30% экономии места является абсолютным пределом.
(3) Предыдущая версия использует заимствование одной тривиальной стандартной функции из dietlibc. От неё пришлось отказаться (ибо dietlibc имеет лицензию GNU GPL, а я хочу Public Domain)- надо было не рыться по библиотекам, а написать свою версию - сэкономил бы часок другой времени.
Процесс совершенствования - это бесконечный процесс, но надо вовремя остановится.
Если не потребуется серьёзно переделывать программу, то после полугода версия будет изменена на 1.0 - полноценный релиз.
C-версия (полностью автономная): Архив с исходным кодом: https://drive.google.com/file/d/1mKNOu ... sp=sharing
Демонстрационное видео: https://drive.google.com/file/d/1mTMBjv ... sp=sharing
Лицензия: Public Domain
FASM-версия (70% зависимлсть от console.obj, но работает и без, хотя "пользователи вряд ли захотят использовать её без console.obj"): Архив с исходным кодом:https://drive.google.com/file/d/1_SQjdb ... sp=sharing
Демонстрационное видео:https://drive.google.com/file/d/1jMAiSW ... sp=sharing
Лицензия: Public Domain
В видео используется изменённая версия программы shell: Лицензия GNU GPL требует распространения только предоставив иходный код:
https://drive.google.com/file/d/1ba08b5 ... sp=sharing
С-версия вряд ли будет Вам нужна, а вот насчёт ассемблерной - хорошо бы было чтобы кто-то из команды разработчиков предоставил услугу по размещению исходников в автосборку ... Макросы здесь не используются, локализации тоже нет, так что размещение должно быть тривиальным.
P.S.
(1) Поддержка коммуникации по имеющемуся протоколу shell (с использованием разделяемой памяти) мною отвергается - она в разы сложнее, этот протокол вроде как нигде не используется (IPC правда тоже), она также shell специфичная (правда это означает, что придётся мне взяться за shell - в изменённой версии, в частности, доведены до ума обёртки системных вызовов - иначе они просто не собираются компилятором clang);
(2) C-версия только на 30% больше, чем FASM-версия пр том, что самостоятельно занимается графическим интерфесом. Так что если код на ЯВУ написан грамотно - 30% экономии места является абсолютным пределом.
(3) Предыдущая версия использует заимствование одной тривиальной стандартной функции из dietlibc. От неё пришлось отказаться (ибо dietlibc имеет лицензию GNU GPL, а я хочу Public Domain)- надо было не рыться по библиотекам, а написать свою версию - сэкономил бы часок другой времени.
Who is online
Users browsing this forum: No registered users and 1 guest