Kolibri libc - своя libc
Re: Kolibri libc - своя libc
Спасибо что поправили.
Изобретайте колёса каждый раз, когда хотите написать новую программу.
Re: Kolibri libc - своя libc
Как вы считаете может быть include директорию и libc.obj переместить в ktcc/bin. Тогда таким образом можно будет использовать параметр -B и не указывать постоянно include path в ручную.
Изобретайте колёса каждый раз, когда хотите написать новую программу.
-
- Posts: 412
- Joined: Mon Sep 07, 2020 7:09 pm
Re: Kolibri libc - своя libc
А можно ли как то ее использовать с kgcc/kld как раньше?
(просто редко захожу на пару минут)
Re: Kolibri libc - своя libc
Если заморочится... То наверное да. Но так как Coldy сделал автоимпорт, то смысла не вижу. Да libc.obj всё ещё плоха в плане stdio. Файловый ввод/вывод работает слишком медленно.
Изобретайте колёса каждый раз, когда хотите написать новую программу.
Re: Kolibri libc - своя libc
Не забывайте, что tcc - это еще и линкер, т.е. можно использовать любой компилятор, а линковку делать tcc, но ему нужны объектники ELF на входе (при необходимости их можно получить через конвертер objconv). Сейчас tcc адаптирован для автоимпорта. Последние изменения еще больше повысят удобство (единственное нужно сделать адаптацию заголовков) и даже сделают программы более компактными.
Re: Kolibri libc - своя libc
сделать адаптацию заголовков - готово
Теперь функции - это функции, а не указатели (как было раньше).
Теперь функции - это функции, а не указатели (как было раньше).
-
- Posts: 2
- Joined: Wed Jun 15, 2022 8:59 pm
Re: Kolibri libc - своя libc
Обнаружил ошибку в функции sscanf. Не обрабатывается символ * (пропуск) в строке форматирования.
Пример:
В результате i == 119 вместо i == 5.
В результате n == 2 вместо n == 1.
Предлагаю исправление на проверку.
Пример:
Code: Select all
int i, n;
n = sscanf("w 5", "%*s%d",&i);
В результате n == 2 вместо n == 1.
Предлагаю исправление на проверку.
Upd. Добавил исправление к вычислению результата. Пропущенные аргументы не учитываются в результате. Upd2. Отправил в SVN самостоятельно.Исправленный файл приложил, его нужно загрузить в /programs/develop/ktcc/trunk/libc.obj/source/stdio/format_scan.c. Загрузите на SVN (у меня нет доступа к нему).
Re: Kolibri libc - своя libc
Замечательно! На один баг меньше)
Изобретайте колёса каждый раз, когда хотите написать новую программу.
Re: Kolibri libc - своя libc
Нашёл баг опять же в проклятой scanf и sscanf. Форматирование "%o" работает не правильно. Вместо конвертации в восьмиричную систему она преобразует в шестнадацатиричную.
Что то подозреваю, что в этой замшелой реализация из libck не только тут баг.
Думаю нужно попытаться адаптировать sscanf из musl libc.
Что то подозреваю, что в этой замшелой реализация из libck не только тут баг.
Думаю нужно попытаться адаптировать sscanf из musl libc.
Изобретайте колёса каждый раз, когда хотите написать новую программу.
Re: Kolibri libc - своя libc
С printf, scanf есть проблема - если их полностью реализовывать (или портировать из glibc итп), они получаются монструозными и программы - большими по размеру бинарников.
Потому я переписал(или дописал, не помню) упрощенную версию.
И потому есть con_printf, еще упрощенней, который из console.obj
В конце концов tcc - "игрушечный" или учебный компилятор, зачем ему 100% соответствие?
PS. Что то я смотрю, всю libck перековеркали как бог черепаху, непонятно зачем. Тесты хоть проходит?
ЗЫ2. Еще и поменяли каталоги, навернув всю историю изменений в SVN (
Потому я переписал(или дописал, не помню) упрощенную версию.
И потому есть con_printf, еще упрощенней, который из console.obj
В конце концов tcc - "игрушечный" или учебный компилятор, зачем ему 100% соответствие?
PS. Что то я смотрю, всю libck перековеркали как бог черепаху, непонятно зачем. Тесты хоть проходит?
ЗЫ2. Еще и поменяли каталоги, навернув всю историю изменений в SVN (
Re: Kolibri libc - своя libc
Рад видеть через столько лет ... libck больше нет... libc.obj хотя бы немного пытается соотвествовать стандарту с99. libck не соотвествут никаким стандартам. А ещё libc.obj динамическая либа так что на размер программы это ни как не повлияет.
Только ненадо говорить что я всё сломал и испортил.
Только ненадо говорить что я всё сломал и испортил.
Изобретайте колёса каждый раз, когда хотите написать новую программу.
Re: Kolibri libc - своя libc
Так без истории непонятно, сломал ты чего или починил.
Учись пользоваться СКВ, они для командной работы придуманы
ЗЫ. git умеет отслеживать переносы файлов, SVN - нет
libck писалась на соответствие https://cplusplus.com/reference/clibrary/
Учись пользоваться СКВ, они для командной работы придуманы
ЗЫ. git умеет отслеживать переносы файлов, SVN - нет
libck писалась на соответствие https://cplusplus.com/reference/clibrary/
Re: Kolibri libc - своя libc
Ты ещё не понял, что я ничего не перемещал. libc.obj это не твоя библиотека. Это самостоятельная либа которую мы собрали из кусков musl, pdclib, glibc и да там есть небольшие куски из твоей libck.
Изобретайте колёса каждый раз, когда хотите написать новую программу.
Re: Kolibri libc - своя libc
Ну libck не моя, ее писали первоначальные портировщики tcc. Я лишь подтянул хвосты.
Я понял, еще один франкенштейн =)
Мда, иначе чем вредительством я назвать не могу.
Моя одна из последних версий conio.h https://pastebin.com/KWf9Gp0f
Теперь какой то огрызок
Я понял, еще один франкенштейн =)
Мда, иначе чем вредительством я назвать не могу.
Моя одна из последних версий conio.h https://pastebin.com/KWf9Gp0f
Теперь какой то огрызок
Re: Kolibri libc - своя libc
Пусть это будет вредительство. Хорошо вернуться спустя столько лет и начинать критиковать ...
Изобретайте колёса каждый раз, когда хотите написать новую программу.
Who is online
Users browsing this forum: No registered users and 1 guest