User talk:81.195.31.223

From Meta, a Wikimedia project coordination wiki

{{unblock|not a spam bot}} Also, please save my first (big) edit. it's content:

      • Итак, вариант номер один: хранилище цельных проектов. К медиавики придётся прикрутить компилятор/линковщик! Вестимо, не на php написанный, хотя безумству храбрых, конечно, границ не поставлено… но зачем, если сервера, видимо, будут свои. Статьи на си-подобном языке, шаблоны — аналог .h-файлов (надо же как-то разруливать множественные платформы). Одна статья — одна экспортируемая функция, один собираемый компилятором бинарный объектник, собрать несколько статей-функций — задача линковщика. Структура статьи: название(аргументы); является заголовком экспортируемой функции. Она по этому заголовку может быть вызвана извне (из другой «статьи»). Все остальные функции обладают видимостью только внутри самой «статьи». Если среди них определена main(арг), то такая статья может быть выкачана с сервера в виде исполнимого файла, а не только исходного текста (это не снимает с неё обязанность хоть что-то экспортировать, не факт, что сильно кому-то нужное, но и иногда, может быть, и нужное). Синтаксис проверяется на стадии предпросмотра, статью с синтаксическими ошибками сохранить нельзя. Классические вики-ограничения на переименование прекрасно помогут не развалить сложившиеся вызовы. По умолчанию статья сохраняется как неотпатрулированная и в сборках используется старая версия, кроме малоответственных хелловорлдов. Тем не менее, как минимум автор может себе собрать проект именно со своей версией, чтобы проверить свою работу (это надо подумать, как сделать, ведь проект собирается из окна просмотра одной статьи, а редактируется в общем случае другая, на которую первая просто ссылается). При помощи подзаголовков можно неплохо сделать вложенные аналоги #ifdef, позволяющие часть функции (снабдив заголовком ==Linux== и там ===ubuntu===, например) написать со ссылками на «статьи» API Linux, а часть (с заголовками ==WinNT==, скажем) заставить использовать винапи. Ну, или внутри ==Intel== и ===SSE=== вставить ассемблерную вставку с использованием SSE, а внутри ==default== расписать на чистом Си. Соответственно, добавление шаблонов Linux, ubuntu, WinNT, Intel, SSE даст необходимые данные, как собрать под ту или иную платформу ту или иную секцию кода. Вырисовывается очень наглядный инструмент редактирования и управления проектами, подталкивающий к такому же порядку и аккуратности, как в Википедии. А порядок и аккуратность легко перековываются в оптимизацию, как можно понять по намёкам на те же ассемблерные вставки. В плохо управляемом проекте запутываешься быстрее, чем доходишь до таких тонкостей, в удобно управляемом и структурируемом — можно и до таких глубин дойти и не заблудиться, т. е. выше аккуратность — быстрее итоговый код. Это то, чего сейчас очень не хватает. А, и ещё нюанс. Не надо путать экспорт в рамках системы пользователя (экспортные функции dll, например) и экспорт между статьями-функциями вики. За всё, связанное с системой, отвечает main, так что ограничение «одна статья — одна функция» никак не касается возможностей конечного проекта. В main можно обработать сколько угодно аргументов комстроки или выставить наружу сколько угодно функций, смотря что это за main (это чуть отличается от экспорта на обычном си, ну да и не важно).
Block seems to have expired already. —MarcoAurelio (talk) 10:50, 26 December 2017 (UTC)[reply]