Как очень объективно заметил SadKo, писать полностью на Ассемблере, это дело, действительно не самое быстрое. Еще больше может доставить сложности, даже не столько само написание, сколько вопрос переносимости. И к сожалению, данный фактор способен и вовсе объявить шахматный мат – самой идеи создания «Большой Ассемблерной Библиотеки». Но вот тут, позвольте привести и свой аргумент, и на мой взгляд, он тоже не лишен объективности. Дело в том, что мы все и так создаем – каждый свою библиотеку. И чаще всего, именно абсолютно бессознательно. Именно неосознанно. Мы ее создаем, и расширяем, всякий раз, самым буквальным образом, с написанием каждой, одной лишь единственной функции. Какие-то свои труды, мы потом действительно используем во всех своих последующих проектах, но чаще всего и попросту выбрасываем. А вот теперь давайте на минутку представим, что всё это замечательное сообщество, договорилось о неком едином формате и стиле, и каждый из нас, при написании да пусть даже одной лишь единственной функции – делиться своими трудами здесь. Да, конечно, это потребует определения не только формата и стиля, но и в том числе, чтобы конечный итоговый результат, однажды не превратился в одну очень большую неконтролируемую свалку – придется выработать и какой-то единый формат хранения. Имеется в виду, чтобы к примеру строковые функции не путались бы с функциями файловыми, а те в свою очередь не перемешивались бы еще с чем ни будь. Но я думаю, этот вопрос очень даже решаем. А потому, позвольте просить Вашего мнения. Ибо, если удастся сделать действительно всё очень качественно, кто знает, итоговый результат может оказать влияние, в том числе и на скорость разработки – если предусмотреть возможность использования данной библиотеки в том числе, и в языках высокого уровня. Пусть лишь и исключительно в самых распространенных. P.S. - Разместил эту тему здесь, по причине, что наверное это и относится к вопросам организации.
Так, это и не т.з. Да, оно к тому же, просто и в принципе невозможно. Это всего лишь попытка начать большое обсуждение. ... А уж только после этого, возможны этапы планирования, и уж тем более реализации.
Так, я правильно понял, что вы хотите раздел, где будут постится различные функции написанные на x86 ассемблере ? x64 тоже будет? Ок. Я не против. Могу создать вам такой раздел. На самом васме уже в постах некоторые функции мелькали, да еще и с оч крутой оптимизацией.
yashechka, это не то . имеется ввиду функции, которые можно применить в проектах. Что то типа "Поиск в строке" или "работа со списками" или "хеш". Общее не связанное с виндой \ досом напрямую. По крайней мере я так понял
Да, я всё понял конечно, но это тоже интересная функция. Я про такие программы узнал в Хакере, про них писал Скляров. Кстати, небольшой оффтоп. Скляров очень хороший специалист, а потом он раз и пропал. Никто не знает где он? Вот допустим Флёнов Михаил, который тоже с Ростова-на-Дону - сейчас в Канаде. А вот про Склярова я ничего не слышал давно https://www.labirint.ru/screenshot/goods/268027/3/
Лично мне основой представляется некий прототип «Вселенского информационного пространства», только не в том разобщенном и разрозненном виде, коим является на сегодняшний день Интернет, а именно в виде – максимально упорядоченном. Другими словами, чтобы было не кучей всё свалено, именно разложено всё по полочкам. Ну или точнее по папкам. Лучше всего это сравнить с тем как то принято в Java. Там всё разложено по пакетам. В плане порядка, Java, считаю структурирована - очень хорошо. Какие там должны быть функции? Да какие угодно. В идеале, чтобы там было всё, что только вообще может понадобиться. Долго ли это будет создаваться? Да пусть всё создается само собой. Путем самого банального естественного накопления. Просто для того, чтобы это в конечном итоге стало бы именно библиотекой, а не свалкой – нам всем нужно будет придерживаться какого-то определенного единого стилистического формата. Просто нужно будет как-то всем вместе найти самое лучшее и оптимальное решение, сделать пусть хоть на Си (чисто даже чтобы побыстрее) какие то консольные мастера заготовок (шаблоны модулей функций, наименований функций, …) – чтобы было всё в помощь, всё во благо. И в том числе - во благо удобству. ... Ну а так, да – хотелось бы, чтобы это всё было написано на ассемблере. Под какие архитектуры? Да кто под какую пишет – пусть так и будет. В этом смысле – всякое разнообразие – есть благо высшее. Ибо, тут каждый будет друг друга именно дополнять. Как в муравейнике ли, во вселенском информационном пространстве, или кому то и вовсе это может показаться Царствием Божием – это кому как больше нравится. Если же чисто мое личное предпочтение, то у меня одно лишь единственное пожелание. Это при работе со стеком, я бы предложил придерживаться именно классического варианта – то есть использовать пару регистров EBP и ESP. И как в случае с параметрами функций, так и при выделении пространства под локальные переменные. Так попросту удобнее и нагляднее всё отлаживать. То есть, в отладчике и программе, человек видит одно и тоже. Но это повторюсь, пожелание – исключительно мое. Как то будет принято в итоге? Должно быть так, как будет удобнее именно всем. ... Если же говорить о цели глобальной, и тут понять всё не многим сложнее. Проще всего это объяснить именно методом от противного. Вот сейчас, дискуссии по тем или иным проблемам ведутся везде - по всем телевизионным каналам, на всех форумах, и тд, и т.п. Беда только в том, что проблемы как были, всё так и остается. Потому что спустя час или два, всё о чем поговорили, оно попросту улетает в трубу пустословия. Когда же человечество сможет достигнуть максимальной точки своего интеллектуального, нравственного, духовного, …, - уровня своего развития? Тогда, когда всё самое разумное, гуманное, эффективное – будет именно всеми услышано и сохранено. Неважно – будь то в умах, или сердцах. Сейчас первостепенным приоритетом обладает слово начальника, власти, денег, социального статуса, …, и так далее. Тогда же таковым станет – именно «Слово Истинное». Вот если подобное правило станет именно нормой, тогда же, и всё человечество наконец таки встанет именно исключительно на вертикальный вектор своего развития. В последнее время, ученые это именуют как – «вектор сингулярности». Однажды, в передаче Алексея Семихатова, прозвучало предположение, что это может произойти уже в 21 веке. Если вкратце, то вот так. Но для исполнения всего этого – абсолютно ничего не должно быть потеряно. И уж тем более никто. По-моему, всё просто очень.
Я тут не специалист, но невольно вспомнил НетБСД. Где код был доведен до совершенства, перенесен на все возможные платформы, и при этом сохранять приходилось очень немного, она помещалась на одну дискету.
Вообще такой код из личных библиотек нужно ооочень подробно коментировать. Прямо разжовывать и в рот класть. И readme писать с общей логикой работы.
Рад, что у вас возникли близкие мне мысли. Возможно единое структурированное хранилище открытых библиотек или функций позволит некоторым людям упростить жизнь) У меня гдето с начала этого года подобная функциональность возникла в голове но я отложил ее. Я вижу это как например nuget (от мелкософта для .NET) или packagist (для php хз кто автор). Нужно будет предусмотреть свой тип пакета, в который автор может положить включаемый файл или скомпилинную либу, указать платформу, тип асма и т.д и по желанию для каждой платформы вложить свой файл. У этого всего должен быть веб интерфейс (с удобным поиском, описаниями либ, кнопкой скачать и тд) и апи. Ну и конечно же я сделаю интеграцию с ASM Visual (до тестирования которой еще никак не дошли) чтобы можно было в несколько кликов ставить из репо либы к себе в проект и обновлять их в дальнейшем… Короче особо ничего изобретать не приходиться, проверенная модель как у упомянутых мной выше двух примеров.