LINUX.ORG.RU

Оптимизированный циклический буфер

 , , ,


2

4

Пользуйтесь на здоровье. Лицензии CC + BSD.

https://github.com/vitalyvch/rng_buf

PS: А на новость случайно не потянет?

★★★★★★★★★★★★

Последнее исправление: cvv (всего исправлений: 1)

Возьми с полки пирожок, но огорчу - не тянет вообще ни на что. Меньше сотни строк на скору руку наговняконого кода под непонятно какой лицензией, без установки, без экспортированных целей, с захардкоженными флагами несовместимыми с cl, без CI, без инфы о покрытии, да господи - даже отступы неконсистентны.

slovazap ★★★★★★★★★★★★★★
()
Ответ на: комментарий от slovazap

Меньше сотни строк на скору руку наговняконого кода

Альтернативных реализаций под permissive лицензиями не существует.

без установки

Установка не предполагается. Предполагается исключительно copy-paste.

без экспортированных целей

Это намек на кривой CMakeLists.txt ?

с захардкоженными флагами несовместимыми с cl

А можно тут подробнее?

cvv ★★★★★★★★★★★★
() автор топика
Ответ на: комментарий от cvv

Альтернативных реализаций под permissive лицензиями не существует.

Но и у тебя не пермиссивная.

Creative Commons Attribution-ShareAlike 3.0 Unported License (CC BY-SA 3.0)

NeXTSTEP ★★
()
Ответ на: комментарий от slovazap

без CI, без инфы о покрытии, да господи - даже отступы неконсистентны

Это мелочи. А сборка да - не слишком хороша

DllMain
()
Ответ на: комментарий от slovazap

Возьми с полки пирожок, но огорчу - не тянет вообще ни на что. Меньше сотни строк на скору руку наговняконого кода под непонятно какой лицензией, без установки, без экспортированных целей, с захардкоженными флагами несовместимыми с cl, без CI, без инфы о покрытии, да господи - даже отступы неконсистентны.

Давай ссылки на свои проекты, посмеемся вместе, а то от тебя на этом форуме пока только одни завывания о том, как «правильно делать». Типичный форумный философ-балабол, увы.

anonymous
()
Ответ на: комментарий от cvv

А можно тут подробнее?

-g

Задаётся установкой CMAKE_BUILD_TYPE в Debug или RelWithDebInfo

-O2

Тоже CMAKE_BUILD_TYPE

-std=gnu99

target_compile_features(${cmake_target_name} PUBLIC/PRIVATE c_std_99), екстеншены компиляторы включены по умолчанию

-Wall -Wextra

Таки придётся под условие прятать

if (CMAKE_C_COMPILER_ID STREQUAL "GNU" OR CMAKE_C_COMPILER_ID STREQUAL "Clang")
  target_compile_options(${cmake_target_name} PUBLIC/PRIVATE -Wall -Wextra)
endif ()

-pthread

set(THREADS_PREFER_PTHREAD_FLAG ON)
find_package(Threads REQUIRED)
target_link_libraries(${cmake_target_name} INTERFACE Threads::Threads)
DllMain
()
Ответ на: комментарий от NeXTSTEP

Я хотел копнуть глубже но где-то запутался.

cvv ★★★★★★★★★★★★
() автор топика
Ответ на: комментарий от DllMain

Благодарю за комментарии. Это мой второй проэкт на CMake. У меня были большие проблемы обеспечения совместимости между различными версиями CMake.

Кстати, у тебя нет идей что подразумевал тот парень под cl?

cvv ★★★★★★★★★★★★
() автор топика
Ответ на: комментарий от cvv

У меня были большие проблемы обеспечения совместимости между различными версиями CMake

С таким не сталкивался. Кстати, чёт я сразу не посмотрел

cmake_minimum_required(VERSION 2.8.9)

nам много чего нет, ЕМНИП. Я бы 3.5 посоветовал

что подразумевал тот парень под cl?

Компилятор от microsoft, разве что ) А так не знаю

DllMain
()
Ответ на: комментарий от DllMain

Я бы 3.5 посоветовал

Я лично использую этот код в местах где нет возможности обновится. И часть тех странных решений - из-за того что современные CMake имеют плохую обратную совместимость с 2.8.9

cvv ★★★★★★★★★★★★
() автор топика
Ответ на: комментарий от cvv

нет возможности обновится

Вот оно что. Тогда, наверное, под условия придётся многое загонять, благо CMAKE_C_COMPILER_ID и CMAKE_C_COMPILER_VERSION в 2.8 есть. Но вообще, если cmake - то 3.x, иначе довольно неудобно получается(сам cmake, кстати, собирается на раз-два)

DllMain
()
Ответ на: комментарий от mersinvald

Нормальную установку всё равно написать сложно, а тут либа на пару файлов

DllMain
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.