Сообщение Re: покритикуйте метод компиляции от 20.11.2022 12:02
Изменено 20.11.2022 12:08 rg45
Re: покритикуйте метод компиляции
Здравствуйте, maks1180, Вы писали:
M>Покритикуйте плиз такой метод компиляции, создаётся файл main.cpp в него добавляются
M>#include myfile1.cpp"
M>#include myfile2.cpp"
M>и так далее, далее gcc main.cpp компилируется за 1 вызов.
M>Может быть можно это сделать без создания временного файла main.cpp ?
Фактически это отказ от использования принципа раздельной компиляции. То есть, на выходе препроцессора каждый раз будет образовываться мегамонстр, который будет постоянно расти во времени и в один прекрасный момент просто не поместится в оперативной памяти. О каком ускорении компиляции может идти речь при этом?
Другой момент: все анонимные пространства имен сливаются в одно большое. С практической точки зрения это равносильно отказу от использования локальных имен.
И самое главное, пожалуй: такой подход способстует образованию неоправданных паразитных зависимостей в коде, объемы которых будут расти как снежный ком. В долгосрочной перспективе любой проект будет стремиться к такому состоянию, когда в нем невозможно будет сделать даже относительно безобидные изменения, не поломав какую-нибудь функциональность.
M>Покритикуйте плиз такой метод компиляции, создаётся файл main.cpp в него добавляются
M>#include myfile1.cpp"
M>#include myfile2.cpp"
M>и так далее, далее gcc main.cpp компилируется за 1 вызов.
M>Может быть можно это сделать без создания временного файла main.cpp ?
Фактически это отказ от использования принципа раздельной компиляции. То есть, на выходе препроцессора каждый раз будет образовываться мегамонстр, который будет постоянно расти во времени и в один прекрасный момент просто не поместится в оперативной памяти. О каком ускорении компиляции может идти речь при этом?
Другой момент: все анонимные пространства имен сливаются в одно большое. С практической точки зрения это равносильно отказу от использования локальных имен.
И самое главное, пожалуй: такой подход способстует образованию неоправданных паразитных зависимостей в коде, объемы которых будут расти как снежный ком. В долгосрочной перспективе любой проект будет стремиться к такому состоянию, когда в нем невозможно будет сделать даже относительно безобидные изменения, не поломав какую-нибудь функциональность.
Re: покритикуйте метод компиляции
Здравствуйте, maks1180, Вы писали:
M>Покритикуйте плиз такой метод компиляции, создаётся файл main.cpp в него добавляются
M>#include myfile1.cpp"
M>#include myfile2.cpp"
M>и так далее, далее gcc main.cpp компилируется за 1 вызов.
M>Может быть можно это сделать без создания временного файла main.cpp ?
Фактически это отказ от использования принципа раздельной компиляции. То есть, на выходе препроцессора каждый раз будет образовываться мегамонстр, который будет постоянно расти во времени и в один прекрасный момент просто не поместится в оперативной памяти. О каком ускорении компиляции может идти речь при этом?
Другой момент: все анонимные пространства имен сливаются в одно большое. С практической точки зрения это равносильно отказу от использования локальных имен.
И самое главное, пожалуй: такой подход способстует образованию неоправданных паразитных зависимостей в коде, объемы которых будут расти как снежный ком. В долгосрочной перспективе любой проект будет стремиться к такому состоянию, когда в нем невозможно будет сделать даже относительно безобидные изменения, не поломав какую-нибудь функциональность.
P.S. А что с юнит-тестами? Где будут находиться юнит-тесты? Если в одном котле с продакшн-кодом, то все проблемы еще больше усугубляются. Если отдельно, тогда снова вернулись к раздельной компиляции и использованию заголовочных файлов.
M>Покритикуйте плиз такой метод компиляции, создаётся файл main.cpp в него добавляются
M>#include myfile1.cpp"
M>#include myfile2.cpp"
M>и так далее, далее gcc main.cpp компилируется за 1 вызов.
M>Может быть можно это сделать без создания временного файла main.cpp ?
Фактически это отказ от использования принципа раздельной компиляции. То есть, на выходе препроцессора каждый раз будет образовываться мегамонстр, который будет постоянно расти во времени и в один прекрасный момент просто не поместится в оперативной памяти. О каком ускорении компиляции может идти речь при этом?
Другой момент: все анонимные пространства имен сливаются в одно большое. С практической точки зрения это равносильно отказу от использования локальных имен.
И самое главное, пожалуй: такой подход способстует образованию неоправданных паразитных зависимостей в коде, объемы которых будут расти как снежный ком. В долгосрочной перспективе любой проект будет стремиться к такому состоянию, когда в нем невозможно будет сделать даже относительно безобидные изменения, не поломав какую-нибудь функциональность.
P.S. А что с юнит-тестами? Где будут находиться юнит-тесты? Если в одном котле с продакшн-кодом, то все проблемы еще больше усугубляются. Если отдельно, тогда снова вернулись к раздельной компиляции и использованию заголовочных файлов.