#define

federatica_bot@federatica.space

Andy Wingo: a simple hdr histogram

Good evening! This evening, a note on high-dynamic-range (HDR) histograms.

problem

How should one record garbage collector pause times?

A few options present themselves: you could just record the total pause time. Or, also record the total number of collections, which allows you to compute the average. Maximum is easy enough, too. But then you might also want the median or the p90 or the p99, and these percentile values are more gnarly: you either need to record all the pause times, which can itself become a memory leak, or you need to approximate via a histogram.

Let’s assume that you decide on the histogram approach. How should you compute the bins? It would be nice to have microsecond accuracy on the small end, but if you bin by microsecond you could end up having millions of bins, which is not what you want. On the other end you might have multi-second GC pauses, and you definitely want to be able to record those values.

Consider, though, that it’s not so important to have microsecond precision for a 2-second pause. This points in a direction of wanting bins that are relatively close to each other, but whose absolute separation can vary depending on whether we are measuring microseconds or milliseconds. You want approximately uniform precision over a high dynamic range.

logarithmic binning

The basic observation is that you should be able to make a histogram that gives you, say, 3 significant figures on measured values. Such a histogram would count anything between 1230 and 1240 in the same bin, and similarly for 12300 and 12400. The gap between bins increases as the number of digits grows.

Of course computers prefer base-2 numbers over base-10, so let’s do that. Say we are measuring nanoseconds, and the maximum number of seconds we expect is 100 or so. There are about 230 nanoseconds in a second, and 100 is a little less than 27, so that gives us a range of 37 bits. Let’s say we want a precision of 4 significant base-2 digits, or 4 bits; then we will have one set of 24 bins for 10-bit values, another for 11-bit values, and so-on, for a total of 37 × 24 bins, or 592 bins. If we use a 32-bit integer count per bin, such a histogram would be 2.5kB or so, which I think is acceptable.

Say you go to compute the bin for a value. Firstly, note that there are some values that do not have 4 significant bits: if you record a measurement of 1 nanosecond, presumably that is just 1 significant figure. These are like the denormals in floating-point numbers. Let’s just say that recording a value val in [0, 24-1] goes to bin val.

If val is 24 or more, then we compute the major and minor components. The major component is the number of bits needed to represent val , minus the 4 precision bits. We can define it like this in C, assuming that val is a 64-bit value:

#define max_value_bits 37
#define precision 4
uint64_t major = 64ULL - __builtin_clzl(val) - precision;

The 64 - __builtin_clzl(val) gives us the ceiling of the base-2 logarithm of the value. And actually, to take into account the denormal case, we do this instead:

uint64_t major = val < (1ULL << precision)
  ? 0ULL
  : 64ULL - __builtin_clzl(val) - precision;

Then to get the minor component, we right-shift val by major bits, unless it is a denormal, in which case the minor component is the value itself:

uint64_t minor = val < (1 << precision)
  ? val
  : (val >> (major - 1ULL)) & ((1ULL << precision) - 1ULL);

Then the histogram bucket for a given value can be computed directly:

uint64_t idx = (major << precision) | minor;

Of course, we would prefer to bound our storage, hence the consideration about 37 total bits in 100 seconds of nanoseconds. So let’s do that, and record any out-of-bounds value in the special last bucket, indicating that we need to expand our histogram next time:

if (idx >= (max_value_bits << precision))
  idx = max_value_bits << precision;

The histogram itself can then be defined simply as having enough buckets for all major and minor components in range, plus one for overflow:

struct histogram {
  uint32_t buckets[(max_value_bits << precision) + 1];
};

Getting back the lower bound for a bucket is similarly simple, again with a case for denormals:

uint64_t major = idx >> precision;
uint64_t minor = idx & ((1ULL << precision) - 1ULL);
uint64_t min_val = major
  ? ((1ULL << precision) | minor) << (major - 1ULL)
  : minor;

y u no library

How many lines of code does something need to be before you will include it as a library instead of re-implementing? If I am honest with myself, there is no such limit, as far as code goes at least: only a limit of time. I am happy to re-implement anything; time is my only enemy. But strategically speaking, time too is the fulcrum: if I can save time by re-implementing over integrating a library, I will certainly hack.

The canonical library in this domain is HdrHistogram. But even the C port is thousands of lines of code! A histogram should not take that much code! Hence this blog post today. I think what we have above is sufficient. HdrHistogram’s documentation speaks in terms of base-10 digits of precision, but that is easily translated to base-2 digits: if you want 0.1% precision, then in base-2 you’ll need 10 bits; no problem.

I should of course mention that HdrHistogram includes an API that compensates for coordinated omission, but I think such an API is straigtforward to build on top of the basics.

My code, for what it is worth, and which may indeed be buggy, is over here. But don’t re-use it: write your own. It could be much nicer in C++ or Rust, or any other language.

Finally, I would note that somehow this feels very basic; surely there is prior art? I feel like in 2003, Google would have had a better answer than today; alack. Pointers appreciated to other references, and if you find them, do tell me more about your search strategy, because mine is inadequate. Until then, gram you later!

#gnu #gnuorg #opensource

federatica_bot@federatica.space

STC 4.2 - библиотека алгоритмов и контейнеров для Си

10 апреля состоялся выпуск версии 4.2 библиотеки STC (Smart Template Containers), написанной на языке C (C99) и распространяемой по лицензии MIT.

Изменения:

  • изменён адрес проекта;
  • улучшена документация;
  • добавлены Coroutines и сопутствующая документация;
  • добавлен новый crand.h. Предыдущий crandom.h объявлен устаревшим;
  • добавлен макрос c_const_cast;
  • макросы RAII удалены из примеров использования;
  • макрос c_foreach_r переименован в c_foreach_rv;
  • макрос c_flt_count переименован в c_flt_counter;
  • макрос c_flt_last переименован в c_flt_getcount;
  • макрос c_ARRAYLEN переименован в c_arraylen;
  • удалён устаревший макрос c_ARGSV();
  • удалён макрос c_PAIR.

По утверждениям разработчиков, STC -- это современная быстрая типо-безопасная небольшая библиотека контейнеров и алгоритмов для языка Си (стандарт C99). Библиотека создана под влиянием C++ STL, а также некоторых идей из Rust и Python.

Пример использования:

#define i_extern // include external cstr, utf8, cregex functions implementation.
#include <stc/cregex.h>

int main() {
    const char* input = "start date is 2023-03-01, end date 2025-12-31.";
    const char* pattern = "\\b(\\d\\d\\d\\d)-(\\d\\d)-(\\d\\d)\\b";

    cregex re = cregex_from(pattern);

    // Lets find the first date in the string:
    csview match[4]; // full-match, year, month, date.
    if (cregex_find(&re, input, match) == CREG_OK)
        printf("Found date: %.*s\n", c_SV(match[0]));
    else
        printf("Could not find any date\n");

    // Lets change all dates into US date format MM/DD/YYYY:
    cstr us_input = cregex_replace(&re, input, "$2/$3/$1");
    printf("%s\n", cstr_str(&us_input));

    // Free allocated data
    cstr_drop(&us_input);
    cregex_drop(&re);
}

__ c, библиотека

#lang_ru #ru #linuxorgru #линукс #linux

federatica_bot@federatica.space

parted @ Savannah: parted-3.6 released [stable]

I have released parted 3.6

Here are the compressed sources and a GPG detached signature[*]:

http://ftp.gnu.org/gnu/parted/parted-3.6.tar.xz

http://ftp.gnu.org/gnu/parted/parted-3.6.tar.xz.sig

Use a mirror for higher download bandwidth:

https://www.gnu.org/order/ftp.html

Here are the SHA256 checksums:

3b43dbe33cca0f9a18601ebab56b7852b128ec1a3df3a9b30ccde5e73359e612 ./parted-3.6.tar.xz

cdc0e7fcf5056e7f3f45d43bb980bd6d835b09a5c762ecd2b65c47742a0e583e ./parted-3.6.tar.xz.sig

[*] Use a .sig file to verify that the corresponding file (without the

.sig suffix) is intact. First, be sure to download both the .sig file

and the corresponding tarball. Then, run a command like this:

gpg --verify parted-3.6.tar.xz.sig

If that command fails because you don't have the required public key,

or that public key has expired, try the following commands to update

or refresh it, and then rerun the 'gpg --verify' command.

gpg --locate-external-key bcl@redhat.com

gpg --recv-keys 117E8C168EFE3A7F

wget -q -O- 'https://savannah.gnu.org/project/release-gpgkeys.php?group=parted&download=1' | gpg --import -

This release was bootstrapped with the following tools:

Autoconf 2.71

Automake 1.16.5

Gettext 0.21

Gnulib v0.1-5949-g480a59ba60

Gperf 3.1

NEWS

  • Noteworthy changes in release 3.6 (2023-04-10) [stable]

Promoting alpha release to stable release 3.6

  • Noteworthy changes in release 3.5.28 (2023-03-24) [alpha]

** New Features

Support GPT partition attribute bit 63 as no_automount flag.

Add type commands to set type-id on MS-DOS and type-uuid on GPT.

Add swap flag support to the dasd disklabel

Add display of GPT disk and partition UUIDs in JSON output

** Bug Fixes

Fix use of enums in flag limits by switching to using #define

Fix ending sector location when using kibi IEC suffix

#gnu #gnuorg #opensource

tor@friendica.produnis.de

New Release: Tor Browser 12.0

Bild/Foto

Tor Browser 12.0 is now available from the Tor Browser download page and also from our distribution directory. This new release updates Tor Browser to Firefox Extended Support Release 102.

What's new?

Upgraded to Extended Support Release 102

Image reading "Firefox Extended Support Release 102"

Once again, the time has come to upgrade Tor Browser to Firefox's newest Extended Support Release. We've spent the past few months since Tor Browser 11.5's release reviewing ESR 102's release notes to ensure each change is compatible with Tor Browser. As part of that process, anything that may conflict with Tor Browser's strict privacy and security principles has been carefully disabled.

Multi-locale support for desktop

![Visualization of the menu used to select Tor Browser 12.0's display language](12-multi-locale.png)
Previously, if you wanted to use Tor Browser for desktop in a language other than English, you needed to find and download one of the matching language versions from our download page. Switching language after installing Tor Browser wasn't an easy task either, and would either require adding the new language pack to your existing installation, or redownloading Tor Browser from scratch.

As of today we're pleased to announce that this is a thing of the past: Tor Browser for desktop is now truly multi-locale, meaning all supported languages are now included in a single bundle. For new users, Tor Browser 12.0 will update itself automatically when launched to match your system language. And if you've upgraded from Tor Browser 11.5.8, the browser will attempt to maintain your previously chosen display language.

Either way, you can now switch display language without any additional downloads via the Language menu in General settings – but we'd still recommend giving Tor Browser a quick restart before the change can take complete effect.

Naturally, bundling multiple languages in a single download should increase Tor Browser's filesize – we are very conscious of this; however, we've found a way to make efficiency savings elsewhere, meaning the difference in filesize between Tor Browser 11.5 and 12.0 is minor.

Native Apple Silicon support

Apple Silicon logo

This was no small task, but we're happy to say that Tor Browser 12.0 now supports Apple Silicon natively. Like Mozilla's approach for Firefox, we've opted for a Universal Binary too – meaning both x86-64 (i.e. Intel compatible) and ARM64 (i.e. Apple Silicon compatible) builds are bundled together with the correct version chosen automatically when run.

HTTPS-Only by default for Android

Image reading "HTTPS Only Mode" and a switch turned on

Back in July, we shared an update about Tor Browser for Android and our aspirations for its near future in the Tor Browser 11.5 release post. Since the beginning of the year our developers have been working hard to recommence regular updates for Android, improve the app's stability, and catch up to Fenix's (Firefox for Android's) release cycle.

The next phase in our plan for Android is to begin porting selected, high-priority features that have recently been launched for desktop over to Android – starting with enabling HTTPS-Only Mode by default. This change will help provide the same level of protection against SSL stripping attacks by malicious exit relays that we introduced to desktop in Tor Browser 11.5.

Prioritize .onion sites for Android

![Visualization of the option to prioritize onion sites in Tor Browser for Android's Privacy and Security settings screen](12-prioritize-onions-android.png)
Another small but mighty improvement to Tor Browser 12.0 for Android is the option to "prioritize .onion sites" where available. When enabled, you will be redirected automatically to the matching .onion site for any web site that has Onion-Location configured – helping you to discover new .onion sites in the wild.

You can turn "Prioritize .onion sites" on under the Privacy and Security section within Tor Browser for Android's Settings menu. Please note that this update does not include the purple ".onion avilable" button in the address bar, which is still unique to Tor Browser for desktop.

And more...

12.0 is the first stable release of Tor Browser that supports Albanian (sq) and Ukranian (uk). We owe a huge thank you to all the volunteers who worked hard to translate Tor Browser into each language <3

If you spot a string that still needs to be translated, or would like to contribute towards the localization of another language, please visit our Community portal to find out how to get started.

We've also been busy making various behind-the-scenes improvements to features like tor-launcher (which starts tor within Tor Browser), the code for which has undergone a significant refactoring. As such, if you run a non-standard Tor Browser setup (like using system tor in conjunction with Tor Browser, or very partiular network settings) and experience an unexpected error message when launching Tor - please let us know by filing an issue in our Gitlab repo.

Lastly, Tor Browser's letterboxing feature has received a number of minor improvements to its user experience, including (but not limited to) fixing potantial leaks and bypasses, removing the 1px border in fullscreen videos, and disabling the feature entirely on trusted pages like the Connect to Tor screen, among others.

Send us your feedback

If you find a bug or have a suggestion for how we could improve this release, please let us know. Thanks to all of the teams across Tor, and the many volunteers, who contributed to this release.

Full changelog

The full changelog since Tor Browser 11.5.10 is:- All Platforms
- Update Translations
- Update tor to 0.4.7.12
- Bug tor-browser#17228: Consideration for disabling/trimming referrers within TBB
- Bug tor-browser#24686: In Tor Browser context, should network.http.tailing.enabled be set to false?
- Bug tor-browser#27127: Audit and enable HTTP/2 push
- Bug tor-browser#27258: font whitelist means we don't have to set gfx.downloadable_fonts.fallback_delay
- Bug tor-browser#40057: ensure that CSS4 system colors are not a fingerprinting vector
- Bug tor-browser#40058: ensure no locale leaks from new Intl APIs
- Bug tor-browser#40183: Consider disabling TLS ciphersuites containing SHA-1
- Bug tor-browser#40251: Clear obsolete prefs after torbutton!27
- Bug tor-browser#40406: Remove Presentation API related prefs
- Bug tor-browser#40491: Don't auto-pick a v2 address when it's in Onion-Location header
- Bug tor-browser#40494: Update Startpage and Blockchair onion search providers
- Bug tor-browser-build#40580: Add support for Ukranian (uk)
- Bug tor-browser-build#40646: Don't build Español AR anymore
- Bug tor-browser-build#40674: Add Secondary Snowflake Bridge
- Bug tor-browser#40783: Review 000-tor-browser.js and 001-base-profile.js for 102
- Bug tor-browser#41098: Compare Tor Browser's and GeckoView's profiles
- Bug tor-browser#41125: Review Mozilla 1732792: retry polling requests without proxy
- Bug tor-browser#41154: Review Mozilla 1765167: Deprecate Cu.import
- Bug tor-browser#41164: Add some #define for the base-browser section
- Bug tor-browser#41306: Typo "will not able" in "Tor unexpectedly exited" dialog
- Bug tor-browser#41317: Tor Browser leaks banned ports in network.security.ports.banned
- Bug tor-browser#41345: fonts: windows whitelist contains supplemental fonts
- Bug tor-browser#41398: Disable Web MIDI API
- Bug tor-browser#41406: Do not define --without-wasm-sandboxed-libraries if WASI_SYSROOT is defined
- Bug tor-browser#41420: Remove brand.dtd customization on nightly
- Bug tor-browser#41457: Remove more Mozilla permissions
- Bug tor-browser#41473: Add support for Albanian (sq)
- Windows + macOS + Linux
- Update Firefox to 102.5.0esr
- Bug tor-browser#17400: Decide how to use the multi-lingual Tor Browser in the alpha/release series
- Bug tor-browser-build#40595: Migrate to 102 on desktop
- Bug tor-browser-build#40638: Visit our website link after build-to-build upgrade in Nightly channel points to old v2 onion
- Bug tor-browser-build#40648: Do not customize update.locale in multi-lingual builds
- Bug tor-browser#40853: use Subprocess.jsm to launch tor
- Bug tor-browser#40933: Migrate remaining tor-launcher functionality to tor-browser
- Bug tor-browser#41011: The Internet and Tor status are visible when opening the settings
- Bug tor-browser#41044: Content exceeding the height of the connection settings modals
- Bug tor-browser#41116: Review Mozilla 1226042: add support for the new 'system-ui' generic font family
- Bug tor-browser#41117: Review Mozilla 1512851: Add Share Menu to File Menu on macOS
- Bug tor-browser#41283: Toolbar buttons missing their label attribute
- Bug tor-browser#41284: Stray security-level- fluent ids
- Bug tor-browser#41287: New identity button inactive if added after customization
- Bug tor-browser#41292: moreFromMozilla pane in about:preferences in 12.0a2
- Bug tor-browser#41293: Incomplete branding in German with 12.0a2
- Bug tor-browser#41337: Add a title to the new identity confirmation
- Bug tor-browser#41342: Update the New Identity dialog to the proton modal style
- Bug tor-browser#41344: Authenticated Onion Services do not prompt for auth key in 12.0 alpha series
- Bug tor-browser#41352: Update or drop the show manual logic in torbutton
- Bug tor-browser#41369: Consider a different list-order for locales in language menu
- Bug tor-browser#41374: Missing a few torconnect strings in the DTD
- Bug tor-browser#41377: Hide Search for more languages... from Language selector in multi-locale build
- Bug tor-browser#41378: Inform users when Tor Browser sets their language automatically
- Bug tor-browser#41385: Bootstrap failure is logged but not raised up to about:torconnect
- Bug tor-browser#41386: The new tor-launcher has a problem when another Tor is running
- Bug tor-browser#41387: New identity and new circuit ended up inside history
- Bug tor-browser#41400: Missing onionAuthViewKeys causes "Onion Services Keys" dialog to be empty.
- Bug tor-browser#41401: Missing some mozilla icons because we still loading them from "chrome://browser/skin" rather than "chrome://global/skin/icons"
- Bug tor-browser#41404: Fix blockchair-onion search extension
- Bug tor-browser#41409: Circuit display is broken on Tails
- Bug tor-browser#41410: Opening and closing HTTPS-Only settings make the identity panel shrink
- Bug tor-browser#41412: New Identity shows "Tor Browser" instead of "Restart Tor Browser" in unstranslated locales
- Bug tor-browser#41417: Prompt users to restart after changing language
- Bug tor-browser#41429: TorConnect and TorSettings are initialized twice
- Bug tor-browser#41435: Add a Tor Browser migration function
- Bug tor-browser#41436: The new tor-launcher handles arrays in the wrong way
- Bug tor-browser#41437: Use the new media query for dark theme for the "Connected" pill in bridges
- Bug tor-browser#41449: Onion authentication's learn more should link to the offline manual
- Bug tor-browser#41451: Still using requestedLocales in torbutton
- Bug tor-browser#41455: Tor Browser dev build cannot launch tor
- Bug tor-browser#41458: Prevent mach package-multi-locale from actually creating a package
- Bug tor-browser#41462: Add anchors to bridge-moji and onion authentication entries
- Bug tor-browser#41466: Port YEC 2022 campaign to Tor Browser 12.0 (Desktop)
- Bug tor-browser#41495: Clicking on "View Logs" in the "Establishing Connection" page takes you to about:preferences#connection and not logs
- Bug tor-browser#41498: The Help panel is empty in 12.0a4
- Bug tor-browser#41508: Update the onboarding link for 12.0
- Windows
- Bug tor-browser#41149: Review Mozilla 1762576: Firefox is not allowing Symantec DLP to inject DLL into the browser for Data Loss Prevention software
- Bug tor-browser#41278: Create Tor Browser styled pdf logo similar to the vanilla Firefox one
- Bug tor-browser#41426: base-browser nightly fails to build for windows-i686
- macOS
- Bug tor-browser#23451: Adapt font whitelist to changes on macOS (zh locales)
- Bug tor-browser#41004: The Bangla font does not display correctly on MacOs
- Bug tor-browser#41108: Remove privileged macOS installation from 102
- Bug tor-browser#41294: Bookmarks manager broken in 12.0a2 on MacOS
- Bug tor-browser#41348: cherry-pick macOS OSSpinLock replacements
- Bug tor-browser#41370: Find a way to ship custom default bookmarks without changing language-packs on macOS
- Bug tor-browser#41372: "Japanese" language menu item is localised in multi-locale testbuild (on mac OS)
- Bug tor-browser#41379: The new tor-launcher is broken also on macOS
- Linux
- Bug tor-browser#40359: Tor Browser Launcher has Wrong Icon
- Bug tor-browser-build#40626: Define the replacements for generic families on Linux
- Bug tor-browser#41163: Fixing loading of bundled fonts on linux
- Android
- Update GeckoView to 102.5.0esr
- Bug tor-browser#40014: Check which of our mobile prefs and configuration changes are still valid for GeckoView
- Bug tor-browser-build#40631: Stop bundling HTTPS Everywhere on Android
- Bug tor-browser#41394: Implement a setting to always prefer onion sites
- Bug tor-browser#41465: Port YEC 2022 campaign to Tor Browser 12.0 (Android)
- Build System
- All Platforms
- Update Go to 1.19.3
- Bug tor-browser-build#23656: Use .mozconfig files in tor-browser repo for rbm builds
- Bug tor-browser-build#28754: make testbuild-android-armv7 stalls during sha256sum step
- Bug rbm#40049: gpg_keyring should allow for array of keyrings
- Bug tor-browser-build#40397: Create a new build target to package tor daemon, pluggable transports and dependencies
- Bug tor-browser-build#40407: Bump binutils version to pick up security improvements for Windows users
- Bug tor-browser-build#40585: Prune the manual more
- Bug tor-browser-build#40587: Migrate tor-browser-build configs from gitolite to gitlab repos
- Bug tor-browser-build#40591: Rust 1.60 not working to build 102 on Debian Jessie
- Bug tor-browser-build#40592: Consider re-using our LLVM/Clang to build Rust
- Bug tor-browser-build#40593: Update signing scripts to take into account new project names and layout
- Bug tor-browser-build#40607: Add alpha-specific release prep template
- Bug tor-browser-build#40610: src-*.tar.xz tarballs are missing in https://dist.torproject.org/torbrowser/12.0a1/
- Bug tor-browser-build#40612: Migrate Release Prep template to Release Prep - Stable
- Bug tor-browser-build#40619: Make sure translations are taken from gitlab.tpo and not git.tpo
- Bug torbrowser-build#40627: Add boklm to torbutton.gpg
- Bug tor-browser-build#40634: Update the project/browser path in tools/changelog-format-blog-post and other files
- Bug tor-browser-build#40636: Remove https-everywhere from projects/browser/config
- Bug tor-browser-build#40639: Remove tor-launcher references
- Bug tor-browser-build#40643: Update Richard's key in torbutton.gpg
- Bug tor-browser-build#40645: Remove unused signing keys and create individual keyrings for Tor Project developers
- Bug tor-browser-build#40655: Published tor-expert-bundle tar.gz files should not include their tor-browser-build build id
- Bug tor-browser-build#40656: Improve get_last_build_version in tools/signing/nightly/sign-nightly
- Bug tor-browser-build#40660: Update changelog-format-blog-post script to point gitlab rather than gitolite
- Bug tor-browser-build#40662: Make base-browser nightly build from tag
- Bug tor-browser-build#40663: Do not ship bookmarks in tor-browser-build anymore
- Bug tor-browser-build#40667: Update Node.js to 12.22.12
- Bug tor-browser-build#40669: Remove HTTPS-Everywhere keyring
- Bug tor-browser-build#40671: Update langpacks URL
- Bug tor-browser-build#40675: Update tb_builders list in set-config
- Bug tor-browser-build#40690: Revert fix for zlib build break
- Bug tor-browser#41308: Use the same branch for Desktop and GeckoView
- Bug tor-browser#41321: Delete various master branches after automated build/testing scripts are updated
- Bug tor-browser#41340: Opt in to some of the NIGHTLY_BUILD features
- Bug tor-browser#41357: Enable browser toolbox debugging by default for dev builds
- Bug tor-browser#41446: Multi-lingual alpha bundles break make fetch
- Windows + macOS + Linux
- Bug tor-browser-build#40499: Update firefox to enable building from new 'base-browser' tag
- Bug tor-browser-build#40500: Add base-browser package project
- Bug tor-browser-build#40501: Makefile updates to support building base-browser packages
- Bug tor-browser-build#40503: Update Release Prep issue template with base-browser and privacy browser changes
- Bug tor-browser-build#40547: Remove container/remote_* from rbm.conf
- Bug tor-browser-build#40581: Update reference to master branches
- Bug tor-browser-build#40641: Fetch Firefox locales from l10n-central
- Bug tor-browser-build#40678: Force all 11.5 users to update through 11.5.8 before 12.0
- Bug tor-browser-build#40685: Remove targets/nightly/var/mar_locales from rbm.conf
- Bug tor-browser-build#40686: Add a temporary project to fetch Fluent tranlations for base-browser
- Bug tor-browser-build#40691: Update firefox config to point to base-browser branch rather than a particular tag in nightly
- Bug tor-browser-build#40699: Fix input_files in projects/firefox-l10n/config
- Bug tor-browser#41099: Update+comment the update channels in update_responses.config.yaml
- Windows
- Bug tor-browser-buid#29318: Use Clang for everything on Windows
- Bug tor-browser-build#29321: Use mingw-w64/clang toolchain to build tor
- Bug tor-browser-build#29322: Use mingw-w64/clang toolchain to build OpenSSL
- Bug tor-browser-build#40409: Upgrade NSIS to 3.08
- Bug tor-browser-build#40666: Fix compiler depedencies for Firefox on Windows
- macOS
- Bug tor-browser-build#40067: Rename "OS X" to "macOS"
- Bug tor-browser-build#40158: Add support for macOS AArch64
- Bug tor-browser-build#40439: Create universal x86-64/arm64 mac builds
- Bug tor-browser-build#40605: Reworked the macOS toolchain creation
- Bug tor-browser-build#40620: Update macosx-sdk to 11.0
- Bug tor-browser-build#40687: macOS nightly builds with packaged locales fail
- Bug tor-browser-build#40694: aarch64 tor-expert-bundle for macOS is not exported as part of the browser build
- Linux
- Bug tor-browser-build#31321: Add cc -> gcc link to projects/gcc
- Bug tor-browser-build#40621: Update namecoin patches for linted TorButton
- Bug tor-browser-build#40659: Error building goservice for linux in nightly build
- Bug tor-browser#41343: Add -without-wam-sandboxed-libraries to mozconfig-linux-x86_64-dev for local builds
- Android
- Bug tor-browser-build#40574: Improve tools/signing/android-signing
- Bug tor-browser-build#40604: Fix binutils build on android
- Bug tor-browser-build#40640: Extract Gradle in the toolchain setup
- Bug tor-browser#41304: Add Android-specific targets to makefiles

nunuchefollette@diasp.org

j'y suis presque
mais ça mouline toujours

3 warnings generated.
[100%] Building CXX object src/external/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/runtime/SymbolTable.cpp.o
In file included from :407:
:99:9: warning: 'U_SHOW_CPLUSPLUS_API' macro redefined [-Wmacro-redefined]
#define U_SHOW_CPLUSPLUS_API 1
^
:98:9: note: previous definition is here
#define U_SHOW_CPLUSPLUS_API 0

#Linux #Ubuntu #Darling

nunuchefollette@diasp.org

Ami #Linux ou #Ubuntu
je pense avoir une erreur non ?*

:99:9: warning: 'U_SHOW_CPLUSPLUS_API' macro redefined [-Wmacro-redefined]
#define U_SHOW_CPLUSPLUS_API 1

et le bouzin est dans une boucle il répète cette ligne, j'en suis à 96% vérifié
Que dois je faire ??

federatica_bot@federatica.space

bison @ Savannah: Bison 3.8.1 released

I'm very pleased to announce the release of Bison 3.8(.1), whose main

novelty is the D backend for deterministic parsers, contributed by

Adela Vais. It supports all the bells and whistles of Bison's other

deterministic parsers, which include: pull/push interfaces, verbose

and custom error messages, lookahead correction, LALR(1), IELR(1),

canonical LR(1), token constructors, internationalization, locations,

printers, token and symbol prefixes, and more.

There are several other notable changes. Please see the detailed NEWS

below for more details.

Cheers!

==================================================================

Here are the compressed sources:

https://ftp.gnu.org/gnu/bison/bison-3.8.1.tar.gz (6.1MB)

https://ftp.gnu.org/gnu/bison/bison-3.8.1.tar.lz (3.1MB)

https://ftp.gnu.org/gnu/bison/bison-3.8.1.tar.xz (3.1MB)

Here are the GPG detached signatures[*]:

https://ftp.gnu.org/gnu/bison/bison-3.8.1.tar.gz.sig

https://ftp.gnu.org/gnu/bison/bison-3.8.1.tar.lz.sig

https://ftp.gnu.org/gnu/bison/bison-3.8.1.tar.xz.sig

Use a mirror for higher download bandwidth:

https://www.gnu.org/order/ftp.html

Here are the SHA1 and SHA256 checksums:

79e97c868475c0e20286d62021f2a7cfd20610f7 bison-3.8.1.tar.gz

zjGKRxlhVft8JpErUTEC89DhR1fC5JXjRgh1e2EznFw bison-3.8.1.tar.gz

e7fe4142c22ac5353ec4416652a56e9da951ffa5 bison-3.8.1.tar.lz

AJ2nWoBj4aO9IVRrN+UkISBWiR/CySr6EanzlphoIbg bison-3.8.1.tar.lz

9772ea3130d6cbddaefe29a659698775a5701394 bison-3.8.1.tar.xz

MfxgJIiq1r3s8MzFVuD8cvxXzcWVz5I5jwIODPSYDxU bison-3.8.1.tar.xz

The SHA256 checksum is base64 encoded, instead of the

hexadecimal encoding that most checksum tools default to.

[*] Use a .sig file to verify that the corresponding file (without the

.sig suffix) is intact. First, be sure to download both the .sig file

and the corresponding tarball. Then, run a command like this:

gpg --verify bison-3.8.1.tar.gz.sig

If that command fails because you don't have the required public key,

then run this command to import it:

gpg --keyserver keys.gnupg.net --recv-keys 0DDCAA3278D5264E

and rerun the 'gpg --verify' command.

This release was bootstrapped with the following tools:

Autoconf 2.71

Automake 1.16b

Flex 2.6.4

Gettext 0.20.1.153-6c39c

Gnulib v0.1-4853-g964ce0a92

==================================================================

GNU Bison is a general-purpose parser generator that converts an annotated

context-free grammar into a deterministic LR or generalized LR (GLR) parser

employing LALR(1) parser tables. Bison can also generate IELR(1) or

canonical LR(1) parser tables. Once you are proficient with Bison, you can

use it to develop a wide range of language parsers, from those used in

simple desk calculators to complex programming languages.

Bison is upward compatible with Yacc: all properly-written Yacc grammars

work with Bison with no change. Anyone familiar with Yacc should be able to

use Bison with little trouble. You need to be fluent in C, C++, D or Java

programming in order to use Bison.

Bison and the parsers it generates are portable, they do not require any

specific compilers.

GNU Bison's home page is https://gnu.org/software/bison/.

==================================================================

NEWS

  • Noteworthy changes in release 3.8.1 (2021-09-11) [stable]

The generation of prototypes for yylex and yyerror in Yacc mode is

breaking existing grammar files. To avoid breaking too many grammars, the

prototypes are now generated when -y/--yacc is used and the

POSIXLY_CORRECT environment variable is defined.

Avoid using -y/--yacc simply to comply with Yacc's file name

conventions, rather, use -o y.tab.c. Autoconf's AC_PROG_YACC macro uses

-y. Avoid it if possible, for instance by using gnulib's gl_PROG_BISON.

  • Noteworthy changes in release 3.8 (2021-09-07) [stable]

** Backward incompatible changes

In conformance with the recommendations of the Graphviz team

(https://marc.info/?l=graphviz-devel&m=129418103126092), -g/--graph

now generates a *.gv file by default, instead of *.dot. A transition

started in Bison 3.4.

To comply with the latest POSIX standard, in Yacc compatibility mode

(options -y/--yacc) Bison now generates prototypes for yyerror and

yylex. In some situations, this is breaking compatibility: if the user

has already declared these functions but with some differences (e.g., to

declare them as static, or to use specific attributes), the generated

parser will fail to compile. To disable these prototypes, #define yyerror

(to yyerror), and likewise for yylex.

** Deprecated features

Support for the YYPRINT macro is removed. It worked only with yacc.c and

only for tokens. It was obsoleted by %printer, introduced in Bison 1.50

(November 2002).

It has always been recommended to prefer %define api.value.type foo to

#define YYSTYPE foo. The latter is supported in C for compatibility

with Yacc, but not in C++. Warnings are now issued if #define YYSTYPE

is used in C++, and eventually support will be removed.

In C++ code, prefer value_type to semantic_type to denote the semantic

value type, which is specified by the api.value.type %define variable.

** New features

*** A skeleton for the D programming language

The "lalr1.d" skeleton is now officially part of Bison.

It was originally contributed by Oliver Mangold, based on Paolo Bonzini's

lalr1.java, and was improved by H. S. Teoh. Adela Vais then took over

maintenance and invested a lot of efforts to complete, test and document

it.

It now supports all the bells and whistles of the other deterministic

parsers, which include: pull/push interfaces, verbose and custom error

messages, lookahead correction, token constructors, internationalization,

locations, printers, token and symbol prefixes, etc.

Two examples demonstrate the D parsers: a basic one (examples/d/simple),

and an advanced one (examples/d/calc).

*** Option -H, --header and directive %header

The option -H/--header supersedes the option --defines, and the

directive %header supersedes %defines. Both --defines and %defines

are, of course, maintained for backward compatibility.

*** Option --html

Since version 2.4 Bison can be used to generate HTML reports. However it

was a two-step process: first bison must be invoked with option --xml,

and then xsltproc must be run to the convert the XML reports into HTML.

The new option --html combines these steps. The xsltproc program must

be available.

*** A C++ native GLR parser

A new version of the C++ GLR parser was added: "glr2.cc". It generates

"true C++11", instead of a C++ wrapper around a C parser as does the

existing "glr.cc" parser. As a first significant consequence, it supports

%define api.value.type variant, contrary to glr.cc.

It should be upward compatible in terms of interface, feature and

performance to "glr.cc". To try it out, simply use

%skeleton "glr2.cc"

It will eventually replace "glr.cc". However we need user feedback on

this skeleton. Please report your results and comments about it.

*** Counterexamples

Counterexamples now show the rule numbers, and always show ε for rules

with an empty right-hand side. For instance

exp

↳ 1: e1 e2 "a"

↳ 3: ε • ↳ 1: ε

instead of

exp

↳ e1 e2 "a"

↳ • ↳ ε

*** Lookahead correction in Java

The Java skeleton (lalr1.java) now supports LAC, via the parse.lac

%define variable.

*** Abort parsing for memory exhaustion (C)

User actions may now use YYNOMEM (similar to YYACCEPT and YYABORT)

to abort the current parse with memory exhaustion.

*** Printing locations in debug traces (C)

The YYLOCATION_PRINT(File, Loc) macro prints a location. It is defined

when (i) locations are enabled, (ii) the default type for locations is

used, (iii) debug traces are enabled, and (iv) YYLOCATION_PRINT is not

already defined.

Users may define YYLOCATION_PRINT to cover other cases.

*** GLR traces

There were no debug traces for deferred calls to user actions. They are

logged now.

#gnu #gnuorg #opensource

rocapc@joindiaspora.com

Every time the alarms sound announcing another economic crisis, sales of Karl Marx’s books skyrocket. Few understood how capitalism works and its consequences for humanity like this 19th-century German thinker.
No matter how hard the hegemonic propaganda machine has tried to refute his analysis and decree the death of the ideas to which he dedicated his life, Marxism resists the test of time and its validity - not only as a method to understand the world, - but as a tool to transform it, is proven.

Two centuries after his birth, Granma International shares ten of Marx’s predictions that set the pace of the 21st century.

neti@nerdpol.ch

... one second please ... ... heute Schaltsekunde ...
http://www.heise.de/newsticker/meldung/Schaltsekunde-Die-heutige-Nacht-ist-eine-Sekunde-laenger-2730430.html

Wer noch einen der alten Kernel fährt sollte sich vielleicht nach der #Schaltsekunde mal seinen Server anschauen. Nur in wenigen Fällen ist mit einem Freeze zu rechnen. Meist ist auf betroffenen System nur ein enormer Anstieg der CPU Auslastung zu sehen.
FIX: date -s "$(LC_ALL=C date)" <- Date neusetzen ....
Quelle: http://www.heise.de/open/meldung/Schaltsekunden-Bug-in-Linux-verschwendet-Strom-1631325.html

Wer vorsichtig ist und noch ein betroffenes System hat, kann folgendes tun:
1. Stoppt den ntpd oder chrony für heute Nacht
2. Prüft ob im Kernel das Leap Second Flag gesetzt ist. z.B.: mit dem checkleap.c Code siehe CodeBlock
3. Setzt das Flag falls vorhanden zurück z.B. mit: ntptime -s 0
Quelle: https://access.redhat.com/articles/199563
4. ntpd oder chrony morgens wieder starten

checkleap.c (compile with gcc checkleap.c ... run with ./a.out)

#include <sys/timex.h>
#include <stdio.h>

int main(int argc, char **argv)
{

    struct timex buf;
    int res;

    buf.modes = 0;

    res = adjtimex(&buf);
    if(res < 0) {
        perror("Error calling adjtimex");
        return 1;
    }

    printf("clock status: %i\n", res);
    return 0;
}

Kurzinfo zu den Rückgabewerten:

#define TIME_OK   0 /* clock synchronized */
#define TIME_INS  1 /* insert leap second */
#define TIME_DEL  2 /* delete leap second */
#define TIME_OOP  3 /* leap second in progress */
#define TIME_WAIT 4 /* leap second has occurred */
#define TIME_BAD  5 /* clock not synchronized */

Quelle: http://stackoverflow.com/questions/26202730/how-to-find-out-if-the-linux-kernel-will-insert-a-leap-second-at-the-end-of-the

!!!Nutzung auf eigene Gefahr!!!

...SYSTEM UPDATEN ist meist doch ALTERNATIVLOS ...

#linux #leapsecond #leap #ntp #chrony #freeze #schaltsekunde