Here’s what I’ve been working on for my LocalGov Drupal contributions this week. Thanks to Big Blue Door for sponsoring the time to work on these.
Category: News
OpenSSH introduces options to penalize undesirable behavior
djm@
) introduced the new sshd(8) configurations options, PerSourcePenalties
and PerSourcePenaltyExemptList
, to provide a built in facility in sshd(8) itself to penalize undesirable behavior, and to shield specific clients from penalty, respectively.
The commit message reads,
List: openbsd-cvs Subject: CVS: cvs.openbsd.org: src From: Damien Miller <djm () cvs ! openbsd ! org> Date: 2024-06-06 17:15:26 CVSROOT: /cvs Module name: src Changes by: djm@cvs.openbsd.org 2024/06/06 11:15:26 Modified files: usr.bin/ssh : misc.c misc.h monitor.c monitor_wrap.c servconf.c servconf.h srclimit.c srclimit.h sshd-session.c sshd.c sshd_config.5 Log message: Add a facility to sshd(8) to penalise particular problematic client behaviours, controlled by two new sshd_config(5) options: PerSourcePenalties and PerSourcePenaltyExemptList.
Python 3.12.4 released
I’m pleased to announce the release of Python 3.12.4:
https://www.python.org/downloads/release/python-3124/
This is the third maintenance release of Python 3.12
Python 3.12 is the newest major release of the Python programming
language, and it contains many new features and optimizations. 3.12.4 is
the latest maintenance release, containing more than 250 bugfixes,
build improvements and documentation changes since 3.12.3.
Major new features of the 3.12 series, compared to 3.11
New features
- More flexible f-string parsing, allowing many things previously disallowed (PEP 701).
- Support for the buffer protocol in Python code (PEP 688).
- A new debugging/profiling API (PEP 669).
- Support for isolated subinterpreters with separate Global Interpreter Locks (PEP 684).
- Even more improved error messages. More exceptions potentially caused by typos now make suggestions to the user.
- Support for the Linux
perf
profiler to report Python function names in traces. - Many large and small performance improvements (like PEP 709 and support for the BOLT binary optimizer), delivering an estimated 5% overall performance improvement.
Type annotations
- New type annotation syntax for generic classes (PEP 695).
- New override decorator for methods (PEP 698).
Deprecations
- The deprecated
wstr
andwstr_length
members of the C implementation of unicode objects were removed, per PEP 623. - In the
unittest
module, a number of long deprecated methods and classes were removed. (They had been deprecated since Python 3.1 or 3.2). - The deprecated
smtpd
anddistutils
modules have been removed (see PEP 594 and PEP 632. Thesetuptools
package continues to provide thedistutils
module. - A number of other old, broken and deprecated functions, classes and methods have been removed.
- Invalid backslash escape sequences in strings now warn with
SyntaxWarning
instead ofDeprecationWarning
, making them more visible. (They will become syntax errors in the future.) - The internal representation of integers has changed in preparation
for performance enhancements. (This should not affect most users as it
is an internal detail, but it may cause problems for Cython-generated
code.)
For more details on the changes to Python 3.12, see What’s new in Python 3.12.
More resources
- Online Documentation.
- PEP 693, the Python 3.12 Release Schedule.
- Report bugs via GitHub Issues.
- Help fund Python directly or via GitHub Sponsors, and support the Python community.
Enjoy the new releases
Thanks to all of the many volunteers who help make Python Development
and these releases possible! Please consider supporting our efforts by
volunteering yourself or through organization contributions to the
Python Software Foundation.
Your release team,
Thomas Wouters
Łukasz Langa
Ned Deily
Steve Dower
Firefox tips and tricks for gamers
Once my work day is over and my baby is asleep, there’s nothing I love more than settling in with my weighted blanket, grabbing some pillows, and playing video games. I don’t get to play video games as much as I’d like to anymore, so I need every tool at my disposal working for me […]
The post Firefox tips and tricks for gamers appeared first on The Mozilla Blog.
www-zh-cn @ Savannah: copyright notices in www.gnu.org translations
Dear Translators:
Recently, the Licensing and Compliance Lab provided guidelines
for writing copyright notices in www.gnu.org translations:
https://www.gnu.org/s/trans-coord/w/Copyright-Notices.html
Please take them into account.
After received 2 translators‘ feedback plus my thought, I would put the following as advice for new translations:
1. add your name in the copyright notices in the translation if you think your contribution is enough for an article, like
Copyright © 2024 Free Software Foundation, Inc.<br></br>
Copyright © 2024 XIE Wensheng (translation)<
2. or optionally add your name in the TRANSLATOR’S CREDITS part as we always do.
<b>翻译</b>:李凡希,2010。<br></br>
<b>翻译团队</b>:<a rel=”team” href=”https://savannah.gnu.org/projects/www-zh-cn/“><CTT></a>,2017-2024。<
best regards,
wxie
How Chrome achieved the highest score ever on Speedometer 3
Today’s The Fast and the Curious post explores how Chrome achieved the highest score on the new Speedometer 3.0, an upgraded browser benchmarking tool to optimize the performance of Web applications. Try out Chrome today!
Speedometer 3.0 is a recently published benchmark for measuring browser performance that was created as an industry collaboration between companies like Google, Apple, Mozilla, Intel, and Microsoft. This benchmark helped us identify areas in which we could optimize Chrome to deliver a faster browser experience to all our users.
Here’s a closer look at how we further optimized Chrome to achieve the highest score ever Speedometer 3, by carefully tracking its recent performance over time as the updated benchmark was being developed. Since the inception of Speedometer 3 in May 2022, we’ve driven a 72% increase in Chrome’s Speedometer score – translating into performance gains for our users:
Optimizing workloads
By looking at the workloads in Speedometer and in which functions Chrome was spending the most time, we were able to make targeted optimizations to those functions that each drove an increase in Chrome’s score. For example, the SpaceSplitString function is used heavily to turn space-separated strings such as those in “class=’foo bar’ ” into a list representation. In this function we removed some unnecessary bound checks. When we detect that there are duplicated stylesheets, we dedupe them and reference a single stylesheet instance. We made an optimization to reduce the cost of drawing paths and arcs by tuning memory allocations. When creating form editors we detected some unnecessary processing that occurs when form elements are created. Within querySelector, we were able to detect what selector was commonly used and create a hot-path for that.
We previously shared how we optimized innerHTML using specialized fast paths for parsing, an implementation that also made its way into WebKit. Some workloads in Speedometer 3 use DOMParser so we extended the same optimization for another 1% gain.
We worked with the Harfbuzz maintainer to also optimize how Chrome renders AAT fonts such as those used by Apple Mac OS system fonts. Text starts as a processed stream of unicode characters that is then transformed into a glyph stream that is then run through a state machine defined in the AAT font. The optimization allows us to determine more quickly whether glyphs actually participate in the rules for the state machine, leading to speed-ups when processing text using AAT.
Picking the right code to focus on
An important strategy for achieving high performance is tiering up code, which is picking the right code to further optimize within the engine. Intel contributed profile guided tiering to V8 that remembers tiering decisions from the past such that if a function was stably tiered up in the past, we eagerly tier it up on future runs.
Improving garbage collection
Another area of changes that drove around 3% progression on Speedometer 3 was improvements around garbage collection. V8’s garbage collector has a long history of making use of renderer idle time to avoid interfering with actual application code. The recent changes follow this spirit by extending existing mechanisms to prefer garbage collection in idle time on otherwise very active renderers where possible. Specifically, DOM finalization code that is run on reclaiming objects is now also run in idle time. Previously, such operations would compete with regular application code over CPU resources. In addition, V8 now supports a much more compact layout for objects that wrap DOM elements, i.e., all objects that are exposed to JavaScript frameworks. The compact layout reduces memory pressure and results in less time spent on garbage collection.
Posted by Thomas Nattestad, Chrome Product Manager
OSNews needs your help to stay alive
“Cuidado con lo que os tatuáis”: la advertencia de un joven onubense al que casi expulsan de EE.UU.
Entra en nuestra web: https://www.vozpopuli.com
Youtube: https://bit.ly/2FVvKnr
Twitter: https://twitter.com/voz_populi
Instagram: https://www.instagram.com/vozpopuli
Facebook: https://www.facebook.com/vozpopulidigital/