Здравствуйте, Vamp, Вы писали:
R>>Об этом и говорим. И у такой библиотеки могут быть не только пользователи, которые используют её под юникс, или которые используют её под виндовс. Могут быть и такие, которые используют её и под юникс и под виндовс, да ещё и не хотят отклоняться от интерфейса ПОСИКС. V>Ради бога. Эти пользователи либо откажутся от использования get_ext_error, либо она всегда будет возвращать empty в не-вин средах.
Я понимаю, что они откажутся. Они скорее всего даже и не будет рассматривать такую возможность. Вот об этом и речь, и что ты им предложишь?
С тем, что я предлагаю, им возможно будет чуточку полегче. По-крайней мере мне лично легче отлаживать — вся информация под рукой.
Здравствуйте, Vamp, Вы писали:
R>>Я понимаю, что они откажутся. Они скорее всего даже и не будет рассматривать такую возможность.
V>Не понимаю. Почему не будут рассматривать?
Не важно, забдуь. Пусть как ты сказал — они просто отказались. Так что ты можешь им предложить?
R>Не важно, забдуь. Пусть как ты сказал — они просто отказались. Так что ты можешь им предложить?
Переехать на Гоа например — и больше никогда ничего не программировать. Что значит "просто отказались"?
Здравствуйте, Vamp, Вы писали:
R>>Не важно, забдуь. Пусть как ты сказал — они просто отказались. Так что ты можешь им предложить? V>Переехать на Гоа например — и больше никогда ничего не программировать. Что значит "просто отказались"?
Честно говоря это уже смахивает на троллинг. Перечитай еще раз ветку, remark там все очень доходчиво объяснил.
Можно взять к примеру реализацию pthreads для win32 и на ее примере просто понять, почему нет смысла использовать расширенные функции, если есть необходимость потом написанное компилировать с настоящим pthreads.
W>Честно говоря это уже смахивает на троллинг.
Под кроватью у себя троллей поищи.
W>Можно взять к примеру реализацию pthreads для win32 и на ее примере просто понять, почему нет смысла использовать расширенные функции, если есть необходимость потом написанное компилировать с настоящим pthreads.
Вот я не понял. Объясни, если ты понимаешь.
Здравствуйте, Vamp, Вы писали:
W>>Честно говоря это уже смахивает на троллинг. V>Под кроватью у себя троллей поищи.
Ни к чему эта агрессия. Я вообще без эмоций писал.
W>>Можно взять к примеру реализацию pthreads для win32 и на ее примере просто понять, почему нет смысла использовать расширенные функции, если есть необходимость потом написанное компилировать с настоящим pthreads. V>Вот я не понял. Объясни, если ты понимаешь.
Я знаю как работать с pthreads, и не знаю этих расширенных функций. Это как минимум время на их изучение. Еще следует иметь в виду, что при компиляции с настоящими pthreads придется писать #ifdef #endif, чтобы расширенные функции не приводили к ошибке компиляции, потому что их там нет.
V>>Под кроватью у себя троллей поищи. W>Ни к чему эта агрессия. Я вообще без эмоций писал.
Я тоже без эмоций.
W>Я знаю как работать с pthreads, и не знаю этих расширенных функций. Это как минимум время на их изучение.
Ну новую библиотеку придется изучить, как ни крути. Это в любом случае так будет, даже с решением от Ремарка, потому что возвращаются коды ошибок неприменимые в юникс.
W>Еще следует иметь в виду, что при компиляции с настоящими pthreads придется писать #ifdef #endif, чтобы расширенные функции не приводили к ошибке компиляции, потому что их там нет.
Отчего же? Закорачиваться функции будут внутри библиотеки. Тебе ничего делать не надо.
Здравствуйте, Vamp, Вы писали:
V>Ну новую библиотеку придется изучить, как ни крути. Это в любом случае так будет, даже с решением от Ремарка, потому что возвращаются коды ошибок неприменимые в юникс.
Если мы говорим об эмуляции posix threads в win32, то коды должны быть одни и те же. Иначе это уже не эмуляция. И Ремарк писал, что контракт менять нельзя.
V>Отчего же? Закорачиваться функции будут внутри библиотеки. Тебе ничего делать не надо.
Пусть библиотека эмулятор преобразует коды текущей системы, в коды которые соответствуют контракту. А что делать с остальными?
W>Если мы говорим об эмуляции posix threads в win32, то коды должны быть одни и те же. Иначе это уже не эмуляция.
Мы говорим не о эмуляции, а о кроссплатформенной библиотеке, реализующий посикс.
W>И Ремарк писал, что контракт менять нельзя.
А я с ним спорил.
W>Пусть библиотека эмулятор преобразует коды текущей системы, в коды которые соответствуют контракту. А что делать с остальными?
Не путай библиотеку и эмулятор. Остальными кем?
Здравствуйте, Vamp, Вы писали:
W>>Если мы говорим об эмуляции posix threads в win32, то коды должны быть одни и те же. Иначе это уже не эмуляция. V>Мы говорим не о эмуляции, а о кроссплатформенной библиотеке, реализующий посикс.
Я тоже. У меня есть исходники написанные для c использованием pthreads, я хочу их скомпилировать под win32. Если такая библиотека будет предоставлять отличные коды ошибок (ты об этом сам выше написал) то тут тупо ничего не заработает.
Возможно слово неудачное — эмуляция. Я говорил о библиотеке, которая предоставляет интерфейс, идентичный pthreads. Эмулирует интерфейс. Но термин неудачный, ладно.
W>>Пусть библиотека эмулятор преобразует коды текущей системы, в коды которые соответствуют контракту. А что делать с остальными? V>Не путай библиотеку и эмулятор.
Я не путаю. Термин неудачный, двусмысленный.
V>Остальными кем?
Чем. Кодами. В данном случае системы win32. Кодами, которые не имеют эквивалента в posix.
Здравствуйте, Vamp, Вы писали:
W>>И Ремарк писал, что контракт менять нельзя. V>А я с ним спорил.
Я сам недавно с таким боролся. У меня был проект, который был написан на С++, юзалась библиотека XML, тоже на С++. Бибоиотека реализовывала модель SAX. Через наследование и определение виртуальных функций можно было задавать обработчики тэгов. В этих обработчиках активно использовались всякие исключения. Так как все было написано на С++ — проблем не было. Проблемы начались тогда, когда потребовалось сменить библиотеку XML c C++ на С. Был написан враппер, который повторял интерфейс той прежней библиотеки. Но встала проблема с исключениями. Исключения в данном случае нарушали контракт. Но старый код, а его очень много, трогать было слишком затратно. То есть решения переделать все на коды ошибок, или изменить архитектуру, что бы обрабатывать все исключения на одном уровне — уровне враппера не катили.
W>Я тоже. У меня есть исходники написанные для c использованием pthreads, я хочу их скомпилировать под win32. Если такая библиотека будет предоставлять отличные коды ошибок (ты об этом сам выше написал) то тут тупо ничего не заработает.
Разумеется. Именно по этому функции, определенные в позикс, будут возвращать коды ошибок, определенные в позикс.
W>Чем. Кодами. В данном случае системы win32. Кодами, которые не имеют эквивалента в posix.
Ну я об этом уже четыре часа пишу. Они будут возвращены через get_ext_error.
Здравствуйте, wander, Вы писали:
R>>>Не важно, забдуь. Пусть как ты сказал — они просто отказались. Так что ты можешь им предложить? V>>Переехать на Гоа например — и больше никогда ничего не программировать. Что значит "просто отказались"?
W>Честно говоря это уже смахивает на троллинг. Перечитай еще раз ветку, remark там все очень доходчиво объяснил. W>Можно взять к примеру реализацию pthreads для win32 и на ее примере просто понять, почему нет смысла использовать расширенные функции, если есть необходимость потом написанное компилировать с настоящим pthreads.
Ну слава богу, я уже начал думать, что это у меня крыша едет
Здравствуйте, Vamp, Вы писали:
V>Ну я об этом уже четыре часа пишу. Они будут возвращены через get_ext_error.
Ну мы опять вернулись на исходную позицию. То есть опять же мы переписываем исходники с использованием этой функции, вставляем ее в условную компиляцию, чтобы не мешалась под unix. Так?
W>Ну мы опять вернулись на исходную позицию. То есть опять же мы переписываем исходники с использованием этой функции, вставляем ее в условную компиляцию, чтобы не мешалась под unix. Так?
Нет, не так.
Мы добавляем вызов этой функции, если нас интересуют расширенные коды ошибок. Библиотека позаботится о том, чтобы она работала и в других средах.
Здравствуйте, Vamp, Вы писали:
V>Нет, не так. V>Мы добавляем вызов этой функции, если нас интересуют расширенные коды ошибок. Библиотека позаботится о том, чтобы она работала и в других средах.
Неверно. В другой среде будет не эта библиотека. А настоящий pthreads. Эта библиотека используется только в win32, чтобы дать возможность скомпилироваться юниксовым исходникам.
W>Неверно. В другой среде будет не эта библиотека. А настоящий pthreads. Эта библиотека используется только в win32, чтобы дать возможность скомпилироваться юниксовым исходникам.
А так работать не будет. Если у тебя в другой среде нет этой библиотеки, то include <pthreads_lib.h> отвалится с ошибкой. Или как?