Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Вс дек 09, 2018 11:27 pm

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 236 сообщений ]  На страницу Пред. 1 2 3 4 5 616 След.
Автор Сообщение
 Заголовок сообщения: Re: "Ночные" сборки KolibriOS
СообщениеДобавлено: Ср ноя 23, 2016 3:55 pm 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3952
Siemargl писал(а):
В newlib захаркодено 1024 байта на путь.
И 64 открытых файла на программу (это так, к слову).
Первое определялось требованиями ядра. Кстати, соответствует X/Open System Interfaces. Второе превышает минимальные требования _POSIX_OPEN_MAX=20.


Вернуться к началу
 Заголовок сообщения: Re: "Ночные" сборки KolibriOS
СообщениеДобавлено: Ср ноя 23, 2016 5:17 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пн ноя 19, 2012 5:22 pm
Сообщения: 454
Может, просто сделать новый int, переключающий кодировку? И совместимость,и возможность работы с юникодовыми символами.

_________________
Чем больше сыра, тем больше в нём дыр. Чем больше дыр, тем меньше в нём собственно сыра. Значит, чем больше сыра, тем меньше сыра!


Вернуться к началу
 Заголовок сообщения: Re: "Ночные" сборки KolibriOS
СообщениеДобавлено: Ср ноя 23, 2016 6:52 pm 
В сети
Mentor/Kernel Developer
Аватара пользователя

Зарегистрирован: Чт мар 26, 2015 5:16 pm
Сообщения: 1256
Serge
Цитата:
Я никогда не буду нарушать обратную совместимость.
Так ты и не нарушал вроде. :mrgreen:

А если серьёзно, тебе должно быть виднее, почему не получилась совместимость. Мне с точки зрения ассемблера это совершенно не понятно.


Вернуться к началу
 Заголовок сообщения: Re: "Ночные" сборки KolibriOS
СообщениеДобавлено: Ср ноя 23, 2016 7:00 pm 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3952
Pathoswithin
А причём здесь ассемблер. Ты ничтоже сумняшеся абсолютный путь превратил в локальный, а теперь удивляешься почему не работает ? А ведь предупреждали, что так делать нельзя.
Вот один из вариантов:
Когда-то Колибри не умела работать с относительными путями файлов и библиотечные функции вынужденно формировали абсолютный путь. Функция проверяет первый символ строки, если там '/', значит путь абсолютный и передаётся как есть. В противном случае получает текущий каталог и формирует абсолютный путь. Теперь представь, что в функцию передаётся абсолютный путь "♥/kolibrios/my_file". Функция посчитает его локальным и превратит /current_dir/♥/kolibrios/my_file. Со всеми вытекающими.


Вернуться к началу
 Заголовок сообщения: Re: "Ночные" сборки KolibriOS
СообщениеДобавлено: Ср ноя 23, 2016 7:21 pm 
В сети
Mentor/Kernel Developer
Аватара пользователя

Зарегистрирован: Чт мар 26, 2015 5:16 pm
Сообщения: 1256
А разве в argv[0] допускаются относительные пути? Тогда горе от ума...


Вернуться к началу
 Заголовок сообщения: Re: "Ночные" сборки KolibriOS
СообщениеДобавлено: Ср ноя 23, 2016 7:23 pm 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3952
Pathoswithin писал(а):
А разве в argv[0] допускаются относительные пути? Тогда горе от ума...
Вот именно, что горе. Ты абсолютный путь в argv[0] превратил в относительный. Раньше это был "/и_так_далее" а теперь "♥/и_так_далее"

Pathoswithin
Ты будешь исправлять свой косяк, или это делать мне ?


Вернуться к началу
 Заголовок сообщения: Re: "Ночные" сборки KolibriOS
СообщениеДобавлено: Ср ноя 23, 2016 7:43 pm 
В сети
Mentor/Kernel Developer
Аватара пользователя

Зарегистрирован: Чт мар 26, 2015 5:16 pm
Сообщения: 1256
Ассемблер здесь при том, что ассемблерные программы не умничают и не ищут относительный путь там (argv[0]), где его быть не может. С точки зрения системы "♥/kolibrios/my_file" - это абсолютный путь.

Как ты собираешься это исправлять так, чтоб программы могли без ограничений работать из папки с индийским именем например? Вообще, как в сишных программах реализуется поддержка юникода?


Вернуться к началу
 Заголовок сообщения: Re: "Ночные" сборки KolibriOS
СообщениеДобавлено: Ср ноя 23, 2016 7:48 pm 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3952
Pathoswithin
Я понял, что ты "включил дурака". На уже написанный, скомпилированный и правильно работавший код забит болт. Пусть другие долбятся. Я не я, и проблема не моя.
Придется мне исправлять.


Вернуться к началу
 Заголовок сообщения: Re: "Ночные" сборки KolibriOS
СообщениеДобавлено: Ср ноя 23, 2016 8:00 pm 
В сети
Mentor/Kernel Developer
Аватара пользователя

Зарегистрирован: Чт мар 26, 2015 5:16 pm
Сообщения: 1256
Я понимаю, что тебе нравиться принцип "не ошибается тот, кто ничего не делает", я и сам ошибаться не люблю, исключение делаю только для КОС. Но если ничего не делать, то откуда появится поддержка юникода? Не заложили изначально, значит придётся закладывать кровью. Или предложи какую нибудь альтернативу.


Вернуться к началу
 Заголовок сообщения: Re: "Ночные" сборки KolibriOS
СообщениеДобавлено: Ср ноя 23, 2016 8:19 pm 
Не в сети

Зарегистрирован: Вт мар 08, 2016 11:00 pm
Сообщения: 417
Pathoswithin писал(а):
Я понимаю, что тебе нравиться принцип "не ошибается тот, кто ничего не делает", я и сам ошибаться не люблю, исключение делаю только для КОС. Но если ничего не делать, то откуда появится поддержка юникода? Не заложили изначально, значит придётся закладывать кровью. Или предложи какую нибудь альтернативу.

Не работает пока ваша юникода. см.чат.

Еще нужна какая то функция - какая локаль сейчас родная. Ну получил я имя файла в UTF-8, а печатать его как?
Консоль кодировки не поддерживает, да и шрифты могут быть не с полным набором кодировок.

И первый байтик из argv[0] надо убирать - от него больше вреда, чем пользы.


Последний раз редактировалось Siemargl Ср ноя 23, 2016 9:21 pm, всего редактировалось 3 раза.

Вернуться к началу
 Заголовок сообщения: Re: "Ночные" сборки KolibriOS
СообщениеДобавлено: Ср ноя 23, 2016 8:21 pm 
Не в сети
Mentor/Kernel Developer
Аватара пользователя

Зарегистрирован: Пт июн 30, 2006 9:01 am
Сообщения: 1247
Can we increase the header version? If newer, use UTF8.

_________________
"Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -- and a lot of courage -- to move in the opposite direction." Albert Einstein


Вернуться к началу
 Заголовок сообщения: Re: "Ночные" сборки KolibriOS
СообщениеДобавлено: Ср ноя 23, 2016 8:37 pm 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3952
Pathoswithin писал(а):
Я понимаю, что тебе нравиться принцип "не ошибается тот, кто ничего не делает"
Я внёс дохренища изменений в ядро сохраняя совместимость. Ты на ровном месте сломал совместимость с POSIX, превратив абсолютные пути в локальные


Вернуться к началу
 Заголовок сообщения: Re: "Ночные" сборки KolibriOS
СообщениеДобавлено: Ср ноя 23, 2016 8:52 pm 
В сети
Mentor/Kernel Developer
Аватара пользователя

Зарегистрирован: Чт мар 26, 2015 5:16 pm
Сообщения: 1256
Ну так изменения разные бывают, с революционными туго.

Ага, можно сделать новую версию заголовка. Тогда несколько вопросов:
1) Ядро поддерживает заголовок "MENUET02". Что оно такое?
2) Сколько программ сломалось? Если мало, то лучше новый заголовок сделать cp866, а старый UTF8.
3) И всё таки, как в сишных программах реализуется поддержка юникода?


Вернуться к началу
 Заголовок сообщения: Re: "Ночные" сборки KolibriOS
СообщениеДобавлено: Ср ноя 23, 2016 9:08 pm 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3952
Pathoswithin
1.MENUET02 заголовок для программ с поддержкой thread local storage.
2.Не надо заголовок. Считать, что путь в программу и текущий каталог передаётся в utf-8, без префиксных байтов.
Если очень нужен префикс, пусть будет два байта /☺ /☻ /♥ для абсолютных путей и один байт для относительных.
3.Есть специальные типы данных и набор функций. Newlib поддерживает utf-8 utf-16 и 26 кодовых таблиц Windows. Всё остальное забота программиста.


Вернуться к началу
 Заголовок сообщения: Re: "Ночные" сборки KolibriOS
СообщениеДобавлено: Ср ноя 23, 2016 9:37 pm 
В сети
Mentor/Kernel Developer
Аватара пользователя

Зарегистрирован: Чт мар 26, 2015 5:16 pm
Сообщения: 1256
Кстати, не очень то на ровном месте: http://websvn.kolibrios.org/comp.php?repname=Kolibri+OS&compare[]=%2Fkernel%2Ftrunk%2Ffs@6462&compare[]=%2Fkernel%2Ftrunk%2Ffs@6502

2. Ну вот, другое дело. Префикс нужен, иначе поломаются вообще все программы, которые используют argv[0]. Для utf-16 так не сделаешь, но для utf-8 можно.


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 236 сообщений ]  На страницу Пред. 1 2 3 4 5 616 След.

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB