Драмы GoldenDict
Итак, форк отделился и получил новое имя.
Ну и понеслось:
А на чьей стороне вы? :) (очень трудно выделить для Ъ)
Итак, форк отделился и получил новое имя.
Ну и понеслось:
А на чьей стороне вы? :) (очень трудно выделить для Ъ)
https://open-assistant.io/chat заработал!
Новость писать лень. :)
Igor van den Hoven много экспериментирует с алгоритмами сортировки.
Например, blitsort:
┌───────────────────────┐┌───────────────────────┐
│comparisons ││swap memory │
┌───────────────┐├───────┬───────┬───────┤├───────┬───────┬───────┤┌──────┐┌─────────┐┌─────────┐
│name ││min │avg │max ││min │avg │max ││stable││partition││adaptive │
├───────────────┤├───────┼───────┼───────┤├───────┼───────┼───────┤├──────┤├─────────┤├─────────┤
│blitsort ││n │n log n│n log n││1 │1 │1 ││yes ││yes ││yes │
├───────────────┤├───────┼───────┼───────┤├───────┼───────┼───────┤├──────┤├─────────┤├─────────┤
│crumsort ││n │n log n│n log n││1 │1 │1 ││no ││yes ││yes │
├───────────────┤├───────┼───────┼───────┤├───────┼───────┼───────┤├──────┤├─────────┤├─────────┤
│fluxsort ││n │n log n│n log n││1 │n │n ││yes ││yes ││yes │
├───────────────┤├───────┼───────┼───────┤├───────┼───────┼───────┤├──────┤├─────────┤├─────────┤
│mergesort ││n log n│n log n│n log n││n │n │n ││yes ││no ││no │
├───────────────┤├───────┼───────┼───────┤├───────┼───────┼───────┤├──────┤├─────────┤├─────────┤
│quadsort ││n │n log n│n log n││1 │n │n ││yes ││no ││yes │
├───────────────┤├───────┼───────┼───────┤├───────┼───────┼───────┤├──────┤├─────────┤├─────────┤
│quicksort ││n │n log n│n² ││1 │1 │1 ││no ││yes ││no │
└───────────────┘└───────┴───────┴───────┘└───────┴───────┴───────┘└──────┘└─────────┘└─────────┘
Всем быстрой стабильности!
Писал новость, для перевода строки нажал Enter и новость отправилась на модерацию.
Неудобно получилось, пришлось удалить.
Например, как на Гитхабе. В идеале - сверху от полей редактирования, с кнопочками Markdown-разметки.
Можно будет наполнить ответы эмодзями этими, или более полезными и часто используемыми словами и фразами.
Конечно, есть куча расширений для браузеров, но…
В fs/unicode до сих пор Unicode 12.1, а во дворах уже давно 15.0, и есть корректирующий черновик 15.1.
Думаю отправить им патч, которым пользуюсь более полугода.
У кого был опыт отправки патчей? Как лучше поступить?
Делюсь. Искал что-то типа Google Benchmark или Nanobench, но для C. В Linux использует API perf_event, и kperf в MacOS.
Лицензия: Apache.
Исходники: https://github.com/okuvshynov/b63.
P.S. Некоторое время задумался о названии, вроде бы додумался. :)
По утверждению автора, прирост производительности 8-40% по сравнению с ванильным Chromium.
Скомпилирован clang с опциями SSE4.2, AVX, AES, thinLTO, import_instr_limit, PGO, LLVM-оптимизацией циклов и другими.
Пользуюсь им некоторое время, а сегодня как раз обновление вышло (110.0.5481.178). Решил поделиться. Есть deb.
Оптимизации (страница с фоновыми звуками!).
Сравнение производительности (тоже со звуками!).
Кто-нибудь пробовал?
Для энтузиастов, если что:
$ cmake -G Ninja -B build_libc_release -S llvm-project/llvm -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DLLVM_ENABLE_PROJECTS=libc
$ cd build_libc_release
$ ninja llvmlibc
Тесты:
$ ninja check-llvmlibc
Luau (GitHub) - встраиваемый, Lua 5.1-совместимый (и частично с Lua 5.2-5.4), язык со следующими улучшениями (или «улучшениями»?):
0xABC, 0XABC, 0b01010101, 0B01010101, 1_048_576, 0xFFFF_FFFF, 0b_0101_0101)repeat...until и continue)+=, -=, *=, /=, %=, ^=, ..=)function foo(x: number, y: string): boolean
local k: string = y:rep(x)
return k == "a"
end
type Point = { x: number, y: number }
type Array<T> = { [number]: T }
type Something = typeof(string.gmatch("", "%d"))
local maxValue = if a > b then a else b)for k, v in {1, 4, 9} do
assert(k * k == v)
end
По соображениям безопасности отсутствуют io, os, package и debug.
(En|Destr)oy!
В честь сегодняшнего пре-релиза (0.2.4).
C3 (GitHub) - очередной «убийца» C на базе LLVM. Потихоньку разрабатывается шведским программистом (одна штука).
Ключевые особенности:
Из недостатков - практически спартанская стандартная библиотека, но так как реализованы ещё не все запланированные возможности, то в этом есть смысл.
macro int factorial($n)
{
$if ($n == 0):
return 1;
$else:
return $n * factorial($n - 1);
$endif;
}
extern fn void printf(char *fmt, ...);
fn void main()
{
int x = factorial(12);
printf("12! = %d\n", x);
}
Состоялся выпуск первой беты библиотеки комбинаторного парсинга lexy.
struct channel
{
static constexpr auto rule = dsl::n_digits<2, dsl::hex>;
};
struct color
{
static constexpr auto rule = dsl::hash_sign + dsl::times<3>(dsl::p<channel>) + dsl::eof;
};
using production = color;
Поиграть с примерами.
| ← назад |