(date: 2024-11-04 07:15:51)
date: 2024-11-04, updated: 2024-11-04, from: One Foot Tsunami
https://onefoottsunami.com/2024/11/04/a-monster-assembled-entirely-from-human-flaws/
date: 2024-11-04, from: 404 Media Group
Netflix exec says Generative AI is a ‘once in a generation’ inflection point for video game development.
https://www.404media.co/netflix-games-ai-exec/
date: 2024-11-04, from: 404 Media Group
Wired is going to co-publish two of our articles a month.
https://www.404media.co/404-media-is-partnering-with-wired/
@Dave Winer’s linkblog (date: 2024-11-04, from: Dave Winer’s linkblog)
I don't like being labeled as liberal or leftist. If I were a conservative who believed in the rule of law I would be equally appalled at the NYT coverage of this election. Our constitutional house is on fire, and our supposed leading news org treats this as a normal election. That's the problem.
date: 2024-11-04, from: One Useful Thing
You can start to see the outlines of an AI future, for better and worse
https://www.oneusefulthing.org/p/the-present-future-ais-impact-long
date: 2024-11-04, from: 404 Media Group
When you download that piece of pirated software, you might be also getting a piece of infostealer malware, and entering a highly complex hacking ecosystem that is fueling some of the biggest breaches on the planet.
date: 2024-11-04, from: Raspberry Pi News (.com)
Raspberry Pi Touch Display 2: higher 720×1280-pixel resolution and slimmer form factor, at the same low price of $60
The post Raspberry Pi Touch Display 2 on sale now at $60 appeared first on Raspberry Pi.
https://www.raspberrypi.com/news/raspberry-pi-touch-display-2-on-sale-now-at-60/
@Dave Winer’s linkblog (date: 2024-11-04, from: Dave Winer’s linkblog)
Quincy Jones, music titan who worked with everyone from Frank Sinatra to Michael Jackson, dies at 91.
@Dave Winer’s linkblog (date: 2024-11-04, from: Dave Winer’s linkblog)
This could be the last gasp of the world we used to call twitter.
date: 2024-11-04, from: Tedium site
You’re getting hit by pre-election chaos on every other part of the internet. Let’s take a step back and get a bit of a palate cleanser. Personally, I find a little Tedium goes a long way.
https://feed.tedium.co/link/15204/16874098/pre-election-palate-cleanser
@Dave Winer’s linkblog (date: 2024-11-04, from: Dave Winer’s linkblog)
Perplexity launches an elections tracker.
https://techcrunch.com/2024/11/01/perplexity-launches-an-elections-tracker/
@Dave Winer’s linkblog (date: 2024-11-04, from: Dave Winer’s linkblog)
I’m watching season 2 of The Diplomat on Netflix. what a waste of good actors. the writing is insipid and the story thin. one of those shows where they play this super dramatic music while nothing is happening plot wise. its even more stupid than election coverage at The NY Times. watching Steve Kornacki on msnbc is far more entertaining.
https://www.metacritic.com/tv/the-diplomat-2023/season-2/
@Dave Winer’s linkblog (date: 2024-11-04, from: Dave Winer’s linkblog)
What happened in Iowa. Their 6-week abortion ban. So maybe red states with hard abortion bans might swing like Iowa may have.
https://m.youtube.com/watch?v=P-ysKh_Gyd0&list=PLJNKzTkCZE9vDHDa6ejyyEO1p4_e1RMt6&index=1&pp=iAQB
date: 2024-11-04, from: Maggie Appleton blog
https://maggieappleton.com/forest-talk
date: 2024-11-04, from: LLVM Blog
Hello! I’m Sahil Patidar, and this summer I had the exciting opportunity toparticipate in Google Summer of Code (GSoC) 2024. My project revolved aroundenhancing Clang-Repl by introducing Out-Of-Process Execution.
Mentors: Vassil Vassilev and Matheus Izvekov
Clang-Repl, part of the LLVM project, is a powerful interactive C++ interpreter using Just-In-Time (JIT) compilation. However, it faced two major issues: high resource consumption and instability. Running both Clang-Repl and JIT in the same process consumed excessive system resources, and any crash in user code would shut down the entire session.
To address these problems, Out-Of-Process Execution was introduced. By executing user code in a separate process, resource usage is reduced and crashes no longer affect the main session. This solution significantly enhances both the efficiency and stability of Clang-Repl, making it more reliable and suitable for a broader range of use cases, especially on resource-constrained systems.
As part of my GSoC project, I’ve been focused on implementing out-of-process execution in Clang-Repl and enhancing the ORC JIT infrastructure to support this feature. Here is a breakdown of the key tasks and improvements I worked on:
PR: #110418
One of the primary objectives of my project was to implement out-of-process (OOP) execution capabilities within Clang-Repl, enabling it to execute code in a separate, isolated process. This feature leverages ORC JIT’s remote execution capabilities to enhance code execution flexibility by isolating runtime environments.
To enable OOP execution in Clang-Repl, I utilized the
llvm-jitlink-executor
, allowing Clang-Repl to offload code
execution to a dedicated executor process. This setup introduces a layer
of isolation between Clang-Repl’s main process and the code execution
environment.
New Command-Line Flags:
To facilitate the out-of-process execution, I added two key command-line flags:
–oop-executor
This flag starts a separate
JIT executor process. The executor handles the actual code execution
independently of the main Clang-Repl process.
–oop-executor-connect
This flag establishes
a communication link between Clang-Repl and the out-of-process executor.
It allows Clang-Repl to transmit code to the executor and retrieve the
results from the execution.
With these flags in place, Clang-Repl can utilize
llvm-jitlink-executor
to execute code in an isolated
environment. This approach significantly enhances separation between the
compilation and execution stages, increasing flexibility and ensuring a
more secure and manageable execution process.
Block Dependence Calculation in ObjectLinkingLayerCommit Link
Code Example
clang-repl> int f() {return 1;}clang-repl> int f1() {return f();}clang-repl> f1();error: disconnectingclang-repl> JIT session error: FD-transport disconnectedJIT session error: disconnectingJIT session error: FD-transport disconnectedJIT session error: Failed to materialize symbols: { (main, { __Z2fv }) }disconnecting
During my work on clang-repl
, I encountered an issue where
the JIT session would crash during incremental compilation. The root
cause was a bug in
ObjectLinkingLayer::computeBlockNonLocalDeps
. The problem
arose from the way the worklist was built: it was being populated within
the same loop that records immediate dependencies and dependants, which
caused some blocks to be missed from the worklist. This bug was fixed by
Lang Hames.
As part of the OOP execution work, several improvements were made to ORC JIT, the underlying framework responsible for dynamic compilation and execution of code in Clang-Repl. These improvements target better handling of incremental execution, especially for Mach-O and ELF platforms, and ensuring that initializers are properly managed across different execution environments.
Incremental Initializer Execution for Mach-O and ELFPRs: #97441, #110406
In a typical JIT execution environment, the dlopen
function
is used to handle code mapping, reference counting, and initializer
execution for dynamically loaded libraries. However, this approach is
often too broad for interactive environments like Clang-Repl, where we
only need to execute newly introduced initializers rather than
reinitializing everything. To address this, I introduced the
dlupdate
function in the ORC runtime.
The dlupdate
function is a targeted solution that focuses
solely on running new initializers added during a REPL session. Unlike
dlopen
, which handles a variety of tasks and can lead to
unnecessary overhead, dlupdate
only triggers the execution
of newly registered initializers, avoiding redundant operations. This
improvement is particularly beneficial in interactive settings like
Clang-Repl, where code is frequently updated in small increments.
By streamlining the execution of initializers, this change significantly improves the efficiency of Clang-Repl.
Push-Request Model for ELF InitializersPR: #102846
A push-request model has been introduced to manage ELF initializers
within the runtime state for each JITDylib
, similar to how
initializers are handled for Mach-O and COFF. Previously, ELF required a
fresh request for initializers with each invocation of
dlopen
, but lacked mechanisms to register, deregister, or
retain these initializers. This created issues during subsequent
dlopen
calls, as initializers were erased after the
rt_getInitializers
function was invoked, making further
executions impossible.
To resolve these issues, the following functions were introduced:
__orc_rt_elfnix_register_init_sections
:
Registers ELF initializers for the JITDylib
.
__orc_rt_elfnix_register_jitdylib
:
Registers the JITDylib
with the ELF runtime state.
With the new push-request model, the management and tracking of
initializers for each JITDylib
state are now more
efficient. By leveraging Mach-O’s RecordSectionsTracker
,
only newly registered initializers are executed, greatly improving
efficiency and reliability when working with ELF targets in
clang-repl
.
This update is crucial for enabling out-of-process execution in
clang-repl
on ELF platforms, offering a more effective
approach to managing incremental execution.
Beyond the main enhancements to Clang-Repl and ORC JIT, I also worked on several other improvements:
Auto-loading Dynamic Libraries in ORC JIT.
PR: #109913 (On-going)
With this update, we’ve introduced a new feature to the ORC executor and controller: automatic loading of dynamic libraries in the ORC JIT. This enhancement enables efficient resolution of symbols from both loaded and unloaded libraries.
How It Works:
Key Addition: Global Bloom FilterA significant improvement in this update is the introduction of a Global Bloom Filter. When a symbol cannot be resolved in the loaded libraries, the symbol tables from the scanned libraries are incorporated into this filter. If the symbol is still not found, the bloom filter’s result is returned to the controller, allowing it to skip checking for symbols that do not exist in the global table during future lookups.
Additionally, the system tracks symbols that were previously thought to be present but are actually absent in both loaded and unloaded libraries. With these enhancements, symbol resolution is significantly faster, as the bloom filter helps prevent unnecessary lookups, thereby improving efficiency for both loaded and unloaded dynamic libraries.
Refactor of dlupdate
FunctionPR:
#110491
This update simplifies the dlupdate
function by removing
the mode
argument, streamlining the function’s interface.
The change enhances the clarity and usability of dlupdate
by reducing unnecessary parameters, improving the overall
maintainability of the code.
With these changes, clang-repl
now supports out-of-process
execution. We can run it using the following command:
clang-repl --oop-executor=path/to/llvm-jitlink-executor --orc-runtime=path/to/liborc_rt.a
Crash Recovery and Session Continuation :Investigate and develop ways to enhance crash recovery so that if something goes wrong, the session can seamlessly resume without losing progress. This involves exploring options for an automatic process to restart the executor in the event of a crash.
Finalize Auto Library Loading in ORC JIT :Wrap up the feature that automatically loads libraries in ORC JIT. This will streamline symbol resolution for both loaded and unloaded dynamic libraries by ensuring that any required dylibs containing symbol definitions are loaded as needed.
With this project, Clang-Repl now supports
out-of-process execution for both ELF
and
Mach-O
, making it much more efficient and stable,
especially on devices with limited resources.
In the future, I plan to work on automating library loading and improving ORC-JIT to make Clang-Repl’s out-of-process execution even better.
I would like to thank Google Summer of Code (GSoC) and
the LLVM community for providing me with this amazing opportunity.
Special thanks to my mentors, Vassil Vassilev and
Matheus Izvekov, for their continuous support and
guidance. I am also deeply grateful to Lang Hames for
sharing their expertise on ORC-JIT and helping improve
clang-repl
. This experience has been a major step in my
development, and I look forward to continuing my contributions to open
source.
https://blog.llvm.org/posts/2024-10-23-out-of-process-execution-for-clang-repl/
date: 2024-11-03, from: Liliputing
DeskThing is a free and open source application that breathes new life into Spotify’s discontinued Car Thing accessory by transforming it from a Spotify controller for cars into a desktop device that controls a wide variety of applications running on your PC. It’s one of a number of tools that have come out of the […]
The post DeskThing turns Spotify’s discontinued Car Thing into a PC controller and display appeared first on Liliputing.
@Dave Winer’s linkblog (date: 2024-11-03, from: Dave Winer’s linkblog)
For one survivor, the 1920 Election Day massacre in Florida was ‘the night the devil got loose.’
@Dave Winer’s linkblog (date: 2024-11-03, from: Dave Winer’s linkblog)
A Milwaukee woman whose father died of Covid presses neighbors to vote against Trump.
@Dave Winer’s linkblog (date: 2024-11-03, from: Dave Winer’s linkblog)
CSS was imho a bad idea.
https://thomasorus.com/new-css-that-can-actually-be-used-in-2024.html
@Dave Winer’s linkblog (date: 2024-11-03, from: Dave Winer’s linkblog)
TechCrunch: Bluesky raises $15M Series A, plans to launch subscriptions. No mention of the company's valuation unless I missed it.
https://techcrunch.com/2024/10/24/bluesky-raises-15m-series-a-plans-to-launch-subscriptions/
@Dave Winer’s linkblog (date: 2024-11-03, from: Dave Winer’s linkblog)
Bluesky raised $15 million last month, but the press release doesn't say at what evaluation and if the founders sold stock in this round.
https://bsky.social/about/blog/10-24-2024-series-a
@Dave Winer’s linkblog (date: 2024-11-03, from: Dave Winer’s linkblog)
You can vote any way you want and no one will ever know.
https://m.youtube.com/watch?v=PDOLkGV4-Ls
@Dave Winer’s linkblog (date: 2024-11-03, from: Dave Winer’s linkblog)
Harris grabs unexpected last-minute lead over Trump in Iowa poll.
https://www.theguardian.com/us-news/2024/nov/02/harris-unexpected-lead-over-trump-iowa-selzer-poll
@Dave Winer’s linkblog (date: 2024-11-03, from: Dave Winer’s linkblog)
2024 Pre-Election SNL Cold Open.
https://m.youtube.com/watch?v=e6Funs6yyEw
@Dave Winer’s linkblog (date: 2024-11-03, from: Dave Winer’s linkblog)
Iowa Poll: Kamala Harris pulls ahead in state Donald Trump won twice.
@Dave Winer’s linkblog (date: 2024-11-03, from: Dave Winer’s linkblog)
Kamala Harris Will Make Surprise Appearance on ‘Saturday Night Live’ Tonight.
https://www.nytimes.com/2024/11/02/us/politics/kamala-harris-snl.html?smtyp=cur&smid=bsky-nytimes
date: 2024-11-03, from: Phiresky’s blog
Did you know that PostgreSQL stores statistics about your data that can also be pretty useful not just for the query planner? Say you have a table users (id bigint, created timestamptz, category text): This information is a bit hard to interpret, so let’s just let AI give us a nice visualization of …
https://phiresky.github.io/blog/2024/mock-data-from-postgres-stats
date: 2024-11-03, from: Lean Rada’s blog
For RSS readers: This article contains interactive content available on the original post on leanrada.com.
Check out this demo first (Click it!):