writing.exchange is one of the many independent Mastodon servers you can use to participate in the fediverse.
A small, intentional community for poets, authors, and every kind of writer.

Administered by:

Server stats:

330
active users

#common

1 post1 participant0 posts today
Replied in thread

@sigue

> What's the high-level problem you're trying to solve that has led to this nightmare? Maybe you can avoid it completely?

This will be difficult, but on the other side I wouldn't call it a nightmare. Rather an unwelcome stumbling stone on a road I supposed should have been better worn in.

The thing I am doing currently: I try to write an interface that enables me to script in #common-lisp, completely substituting shell scripts. Since I am convinced, Lisp these days is a good, and even the better scripting language.

It's naturally to require functions like chdir and getcwd in such an environment (possibly better named, but I'll stick with the POSIX function names for now).

Maybe fool that I am, I want everything portable, so I am testing on 8 different Lisp implementations (some of them are too slow in startup to be useful for real "small" shell tools, but there are other use cases).

Now, one of the requirements for chdir and getcwd is, that

(chdir #P"/tmp/" )
(assert (getcwd) #P"/tmp/")

passes. And testing this (when getcwd is uiop:getcwd) I saw it failing in CLISP.

There is really no way around it: I need to wrap it and my:getcwd would need to return the string one gets from running the string getcwd(3) (POSIX interface) would return through pathname. This is not what CLISP does, as it turned out.

I just have to refrain now from using the CLISP native implementation in my interface, that's all. That I cannot delete :VERSION is just the icing on the cake, but before even trying to report this as a bug, I need to see if the standard leaves enough leeway here that perhaps either way (the CLISP and the SBCL way) are right.

FIXING: typos.

Replied in thread

@sigue

The annoying thing is, obviously CLISP goes out of its way to add this version in the first place. (ext:default-directory) probably [need to check] calls getcwd(3) at some place and this returns a string. And naively converting this string gives us

[5]> (describe (pathname "/tmp/"))

#P"/tmp/" is a pathname, with the following components:
DIRECTORY = (:ABSOLUTE "tmp")

Calling @scream for an opinion here.

#common-lisp #clisp

Replied in thread

@sigue

In SBLC (for comparison):

* (defvar p (make-pathname :directory '(:absolute "tmp") :version :newest))
P
* (describe p)
#P"/tmp/"
[pathname]

HOST = #<SB-IMPL::UNIX-HOST {100000D633}>
DIRECTORY = (:ABSOLUTE "tmp")
VERSION = :NEWEST
* (describe (make-pathname :defaults p :version nil))
#P"/tmp/"
[pathname]

HOST = #<SB-IMPL::UNIX-HOST {100000D633}>
DIRECTORY = (:ABSOLUTE "tmp")
*

#common-lisp #scbl

Replied in thread

@sigue

Now, how do I remove the version from a pathname. In CLISP:

[1]> (defvar p (make-pathname :directory '(:absolute "tmp") :version :newest))
P
[2]> (describe p)

#P"/tmp/" is a pathname, with the following components:
DIRECTORY = (:ABSOLUTE "tmp")
VERSION = :NEWEST

[3]> (describe (make-pathname :defaults p :version nil))

#P"/tmp/" is a pathname, with the following components:
DIRECTORY = (:ABSOLUTE "tmp")
VERSION = :NEWEST

Is that even legal?

#common-lisp #clisp

Replied in thread

@breadandcircuses

> “The modernity project does not define humanity. #Humanity is much older. It’s too late for modernity to succeed but it’s not too late for humanity to succeed.” Here he turns to #indigenousCultures: “For hundreds of thousands of years, they survived and did quite well without causing the sixth #massExtinction.”
“There isn’t a single Indigenous package,” he says. “Each is tuned to its [particular local] #environment, and they vary a lot. But they have #common elements: humility, only taking what you need from the environment, and the belief that we can learn a lot from our ‘our brothers and sisters,’ that is, the other animals and plants who have been around for much longer than us.”

@gerrymcgovern

On the U.S. Supreme Court
—Chief Justice John Roberts and his Republican majority have spent decades systematically dismantling the guardrails of American democracy.

Itself the product of unprecedented norm-breaking
—encouraged by a fifty-year special interest campaign designed to weaponize the judicial branch
—it is the Roberts majority that has hastened our endemic institutional collapse.

We can draw a straight line, for example,
from the Roberts Court’s 2010 #Citizens #United decision, which invalidated Congress’s bipartisan campaign finance limits on the farcical premise that independent expenditures could not be corrupting,
to the imminent shadow presidency of erratic mega-billionaire Elon Musk, Trump’s biggest outside spender. 

Citizens United set the stage for the proliferation of political nonprofits and the establishment of #Super #PACs,
giving oligarchs like Musk a megaphone loud enough to drown out ordinary voters.

The decision turbocharged Trump’s rise, allowing his allies to flood the airwaves with disinformation and propaganda,
meanwhile trapping Democrats in a system of corporate-funded campaigns that has eroded their ability to represent the working class.

Three years later, in #Shelby #County v.#Holder, John Roberts completed his career-long vision quest to dismantle the Voting Rights Act,
invalidating its preclearance requirement for states with a history of racial discrimination.

Erasing the national consensus first achieved in the bloody crucible of the Civil Rights Era
and repeatedly reaffirmed by near-unanimous bipartisan Congresses, Roberts deemed racial discrimination a relic of ancient history,
declaring that “nearly 50 years later, things have changed dramatically.”

A flood of Republican state voter suppression laws followed, funded, and orchestrated by the same interests to which Roberts owed his majority.

“Throwing out preclearance when it has worked and is continuing to work to stop discriminatory changes is like throwing away your umbrella in a rainstorm because you are not getting wet,”
Justice Ruth Bader Ginsburg warned in her searing Shelby County dissent.

But soaking us was the whole point.
The downpour continues.

Final results for the 2024 House elections were tallied recently, and Republicans will owe a razor-thin 220-215 majority to the three seats the GOP flipped thanks to the North Carolina legislature’s brazenly partisan gerrymander,
a move blessed by the Supreme Court’s Republican justices’ 2018 decision in #Rucho v. #Common #Cause.

In that case, the Roberts Court
—so power-hungry that leading legal scholars have dubbed it the “Imperial Court”
—conveniently found that #partisan #gerrymandering,
-- a practice dominated by norms-be-damned Republican state legislatures,
-- presented a “political question” that was outside their purview to resolve.

couriernewsroom.com/news/alex-

COURIERAlex Aronson and Lisa Graves: How the Roberts Court Eroded Democratic Institutions and Brought Back TrumpFrom campaign finance to immunity, the Roberts majority has accelerated democracy's decline and empowered authoritarian forces.