Kolibri libc - своя libc

Discussing libraries simplifying applications development
User avatar
turbocat
Posts: 184
Joined: Thu Jun 25, 2020 1:14 am
Has thanked: 1 time
Been thanked: 2 times

Re: Kolibri libc - своя libc

Post by turbocat »

Спасибо что поправили.
Изобретайте колёса каждый раз, когда хотите написать новую программу.
User avatar
turbocat
Posts: 184
Joined: Thu Jun 25, 2020 1:14 am
Has thanked: 1 time
Been thanked: 2 times

Re: Kolibri libc - своя libc

Post by turbocat »

Как вы считаете может быть include директорию и libc.obj переместить в ktcc/bin. Тогда таким образом можно будет использовать параметр -B и не указывать постоянно include path в ручную.
Изобретайте колёса каждый раз, когда хотите написать новую программу.
maxcodehack
Posts: 412
Joined: Mon Sep 07, 2020 7:09 pm

Re: Kolibri libc - своя libc

Post by maxcodehack »

А можно ли как то ее использовать с kgcc/kld как раньше?
(просто редко захожу на пару минут)
User avatar
turbocat
Posts: 184
Joined: Thu Jun 25, 2020 1:14 am
Has thanked: 1 time
Been thanked: 2 times

Re: Kolibri libc - своя libc

Post by turbocat »

Если заморочится... То наверное да. Но так как Coldy сделал автоимпорт, то смысла не вижу. Да libc.obj всё ещё плоха в плане stdio. Файловый ввод/вывод работает слишком медленно.
Изобретайте колёса каждый раз, когда хотите написать новую программу.
Coldy
Posts: 115
Joined: Tue Apr 09, 2019 8:57 pm

Re: Kolibri libc - своя libc

Post by Coldy »

Не забывайте, что tcc - это еще и линкер, т.е. можно использовать любой компилятор, а линковку делать tcc, но ему нужны объектники ELF на входе (при необходимости их можно получить через конвертер objconv). Сейчас tcc адаптирован для автоимпорта. Последние изменения еще больше повысят удобство (единственное нужно сделать адаптацию заголовков) и даже сделают программы более компактными.
Coldy
Posts: 115
Joined: Tue Apr 09, 2019 8:57 pm

Re: Kolibri libc - своя libc

Post by Coldy »

сделать адаптацию заголовков - готово

Теперь функции - это функции, а не указатели (как было раньше).
eastorwest
Posts: 2
Joined: Wed Jun 15, 2022 8:59 pm

Re: Kolibri libc - своя libc

Post by eastorwest »

Обнаружил ошибку в функции sscanf. Не обрабатывается символ * (пропуск) в строке форматирования.
Пример:

Code: Select all

int i, n;
n = sscanf("w 5", "%*s%d",&i);
В результате i == 119 вместо i == 5.
В результате n == 2 вместо n == 1.
Предлагаю исправление на проверку.
Исправленный файл приложил, его нужно загрузить в /programs/develop/ktcc/trunk/libc.obj/source/stdio/format_scan.c. Загрузите на SVN (у меня нет доступа к нему).
Upd. Добавил исправление к вычислению результата. Пропущенные аргументы не учитываются в результате.
format_scan.c
(12.65 KiB) Downloaded 26 times
Upd2. Отправил в SVN самостоятельно.
User avatar
turbocat
Posts: 184
Joined: Thu Jun 25, 2020 1:14 am
Has thanked: 1 time
Been thanked: 2 times

Re: Kolibri libc - своя libc

Post by turbocat »

Замечательно! На один баг меньше)
Изобретайте колёса каждый раз, когда хотите написать новую программу.
User avatar
turbocat
Posts: 184
Joined: Thu Jun 25, 2020 1:14 am
Has thanked: 1 time
Been thanked: 2 times

Re: Kolibri libc - своя libc

Post by turbocat »

Нашёл баг опять же в проклятой scanf и sscanf. Форматирование "%o" работает не правильно. Вместо конвертации в восьмиричную систему она преобразует в шестнадацатиричную.
Что то подозреваю, что в этой замшелой реализация из libck не только тут баг.
Думаю нужно попытаться адаптировать sscanf из musl libc.
Изобретайте колёса каждый раз, когда хотите написать новую программу.
Siemargl
Posts: 444
Joined: Tue Mar 08, 2016 11:00 pm

Re: Kolibri libc - своя libc

Post by Siemargl »

С printf, scanf есть проблема - если их полностью реализовывать (или портировать из glibc итп), они получаются монструозными и программы - большими по размеру бинарников.
Потому я переписал(или дописал, не помню) упрощенную версию.
И потому есть con_printf, еще упрощенней, который из console.obj

В конце концов tcc - "игрушечный" или учебный компилятор, зачем ему 100% соответствие?

PS. Что то я смотрю, всю libck перековеркали как бог черепаху, непонятно зачем. Тесты хоть проходит?
ЗЫ2. Еще и поменяли каталоги, навернув всю историю изменений в SVN (
User avatar
turbocat
Posts: 184
Joined: Thu Jun 25, 2020 1:14 am
Has thanked: 1 time
Been thanked: 2 times

Re: Kolibri libc - своя libc

Post by turbocat »

Рад видеть через столько лет ... libck больше нет... libc.obj хотя бы немного пытается соотвествовать стандарту с99. libck не соотвествут никаким стандартам. А ещё libc.obj динамическая либа так что на размер программы это ни как не повлияет.
Только ненадо говорить что я всё сломал и испортил.
Изобретайте колёса каждый раз, когда хотите написать новую программу.
Siemargl
Posts: 444
Joined: Tue Mar 08, 2016 11:00 pm

Re: Kolibri libc - своя libc

Post by Siemargl »

Так без истории непонятно, сломал ты чего или починил.

Учись пользоваться СКВ, они для командной работы придуманы

ЗЫ. git умеет отслеживать переносы файлов, SVN - нет

libck писалась на соответствие https://cplusplus.com/reference/clibrary/
User avatar
turbocat
Posts: 184
Joined: Thu Jun 25, 2020 1:14 am
Has thanked: 1 time
Been thanked: 2 times

Re: Kolibri libc - своя libc

Post by turbocat »

Ты ещё не понял, что я ничего не перемещал. libc.obj это не твоя библиотека. Это самостоятельная либа которую мы собрали из кусков musl, pdclib, glibc и да там есть небольшие куски из твоей libck.
Изобретайте колёса каждый раз, когда хотите написать новую программу.
Siemargl
Posts: 444
Joined: Tue Mar 08, 2016 11:00 pm

Re: Kolibri libc - своя libc

Post by Siemargl »

Ну libck не моя, ее писали первоначальные портировщики tcc. Я лишь подтянул хвосты.

Я понял, еще один франкенштейн =)

Мда, иначе чем вредительством я назвать не могу.

Моя одна из последних версий conio.h https://pastebin.com/KWf9Gp0f

Теперь какой то огрызок
User avatar
turbocat
Posts: 184
Joined: Thu Jun 25, 2020 1:14 am
Has thanked: 1 time
Been thanked: 2 times

Re: Kolibri libc - своя libc

Post by turbocat »

Пусть это будет вредительство. Хорошо вернуться спустя столько лет и начинать критиковать ...
Изобретайте колёса каждый раз, когда хотите написать новую программу.
Post Reply

Who is online

Users browsing this forum: No registered users and 0 guests