Search
Recommend me a scripting language
I've been looking around for a scripting language that:
- has a cli interpreter
- is a "general purpose" language (yes, awk is touring complete but no way I'm using that except for manipulating text)
- allows to write in a functional style (ie. it has functions like map, fold, etc and allows to pass functions around as arguments)
- has a small disk footprint
- has decent documentation (doesn't need to be great: I can figure out most things, but I don't want to have to look at the interpter source code to do so)
- has a simple/straightforward setup (ideally, it should be a single executable that I can just copy to a remote system, use to run a script and then delete)
Do you know of something that would fit the bill?
---
Here's a use case (the one I run into today, but this is a recurring thing for me).
For my homelab I need (well, want) to generate a luhn mod n check digit (it's for my provisioning scripts to generate synchting device ids from their certificates).
I couldn't find ready-made utilities for this and I might actually need might a variation of the "official" algorithm (IIUC syncthing had a bug in their initial implementation and decided to run with it).
I don't have python (or even bash) available in all my systems, and so my goto language for script is usually sh (yes, posix sh), which in all honestly is quite frustrating for manipulating data.
Clipboard Copy Paste History Function I Accidentally Encountered with Fcitx
Some Lemmy user at one point had asked about a "multi-paste" feature, if there was a way to use keyboard shortcuts to display multiple clipboard items and copy/paste them out at will (this user mentioned similar to RTS games they like to play). If someone can find that post, can you notify them and direct them here, please? I'm having trouble locating it but I recollect that it was within the last 3 months. Edit: I found the post!
Somehow this was stuck in my mind when I accidentally pressed a keyboard shortcut, that showed my last 5 copied items. This isn't exactly what the user was looking for but I thought I'd publicize it here.
If you use Fcitx (because you need multi-language input) from the fcitx5 packages, then you may already have installed the clipboard add-on. You can use fcitx with just one keyboard layout. By default, it's activated by Ctrl+semicolon and shows the 5 last entries, but the number can be configured.
arm64 / aarch64 compatibility
I'm about to step into the wonderful world of ARM Linux. I work with ARM32 as an embedded developer profesionally (Cortex-M3 specifically) so I'm not a complete newbie. But I've never used ARM64, and I've never used it with a desktop OS. So I'm doing my research, as one does, to know roughly what I'll be dealing with.
I have a few questions regarding backward compatibility and architecture-naming. Maybe you specialists out there could shed some light.
From what I could find, I understand the following:
- arm64 and aarch64 are the same thing: the former is what Linus likes to say while the latter is what ARM calls their own stuff.
- arm64 / aarch64 really mean "compatible with ARMv8" as a least common denominator, meaning ARMv8.x-y (x being the extension, y being A for application or R for realtime) will run it, just without taking advantage of any extension or realtime instructions.
- ARMv9.x will run arm64 / aarch64 kernels and applications, as it's (supposedly) backward-compatible with ARMv8, just without taking advantage of the ARMv9 ISA.
- If I want to create arm64 software that takes advantage of this-or-that extension or realtime instructions, I have to compile it in explicitely. I'm not sure if gcc handles special instructions, I haven't checked yet, but I suppose it does since it knows about the Thumb mode for instance.
Do I understand correctly?
If I do create some software that relies on extended ARMv8 or ARMv9 features and I want to release my software as a package, how should I name the package's architecture? Is there even a standard for that? Will it get rejected by the package managers of the few ARM distros out there, or will it be recognized as a subset of the wider arm64 / aarch64 architecture?
How to change dark/light nature of libadwaita in non-gnome systems?
How to change dark/light nature of libadwaita in non-gnome systems?
@[email protected] @[email protected] I use a window manager on Wayland. I know customising gtk4 apps is hard for some reasons. Neither I want some great level of customisation for it. I do not need uniform theming etc. JUST A simple way to change dark light theme from terminal. I use darkman to switch between dark and light theme. I just need a way to switch between dark and light with libadwaita Please help.
Via Andy Miller (2007), an amusing metaphor for Linux memory overcommit. Originally posted by Andries Brouwer to the linux-kernel mailing list, 2004-09-24, in the thread titled “oom_pardon, aka don’t kill my xlock”:
> Via Andy Miller (2007), an amusing metaphor for Linux memory overcommit. Originally posted by Andries Brouwer to the linux-kernel mailing list, 2004-09-24, in the thread titled “oom_pardon, aka don’t kill my xlock”:
> An aircraft company discovered that it was cheaper to fly its planes with less fuel on board. The planes would be lighter and use less fuel and money was saved. On rare occasions however the amount of fuel was insufficient, and the plane would crash. This problem was solved by the engineers of the company by the development of a special OOF (out-of-fuel) mechanism. In emergency cases a passenger was selected and thrown out of the plane. (When necessary, the procedure was repeated.) A large body of theory was developed and many publications were devoted to the problem of properly selecting the victim to be ejected. Should the victim be chosen at random? Or should one choose the heaviest person? Or the oldest? Should passengers pay in order not to be ejected, so that the victim would be the poorest on board? And if for example the heaviest person was chosen, should there be a special exception in case that was the pilot? Should first class passengers be exempted? Now that the OOF mechanism existed, it would be activated every now and then, and eject passengers even when there was no fuel shortage. The engineers are still studying precisely how this malfunction is caused.
> Twenty years later, as far as I know, the OOM killer is still going strong. In fact, if you don’t like the airline’s policy on what counts as an “emergency” (for example, that it might exhaust your swap partition too before killing any bad actor at all), you can hire your own hit man, in the form of the userspace daemon earlyoom.
Explanation of the OOM-Killer: Understanding Out of Memory Killer (OOM Killer) in Linux
Acrobat PDF forms support
TLDR: I recently found out there is "deprecated" XFA format that acrobat still uses in their programs, and government forms have those for dynamic contents in the form that we cannot fill using other softwares. Looking for solutions.
---------------------------
This has been a problem since a long time. Back in 2020 I had dual boot because I needed acrobat to fill PDF forms, but after finding xournal++ program I nuked windows partition. Windows update messing up grub was one of the reason I decided to nuke windows and looking at the posts recently it's still a huge issue.
So the problem I recently encountered is that even the government issued PDF forms need acrobat reader (which is free software for PDF, but only available in windows and mac). Which I didn't think would be an issue and just filled the form in Firefox.
Turns out that was problematic as the PDF forms has fields that are automatically filled, calculated from other fields, only made available when certain checkboxes are checked, etc. and Firefox doesn't support that. Even trying to install the acrobat reader snap (which uses wine) in a VM and opening the PDF on it didn't work. The UI makes me think it's a really old version of the reader.
So without searching for other devices (and filling a PDF with my sensitive information) what solution is there? Installing windows is a hassle even in a VM, and it will use up precious SSD memory. But that's the only solution I can think of.
I also found masterpdf or something like that which the Arch wiki says has support for that, but it didn't work. It says XFA forms are converted to acro forms, and the dynamic part doesn't work. There are websites that promise to work for such forms, but I'm not going to be putting sensitive info on web apps.
Replacing M.2 system drive (btrfs) on motherboard with single slot
I finally have the budget to build my first NAS and upgrade my desktop PC. I have used Linux for quite some time, but am far from an expert.
One of the steps is to move my M.2 NVME system drive (1TB) from my desktop to my NAS. I want to replace it with a bigger NVME drive (2TB). My current motherboard only has a single M.2 slot, that's why I bought a M.2 enclosure.
My goal is to put my new drive into the enclosure, clone my whole system disk onto it and then replace the old drive. At first I found several posts about using clonezilla to clone the whole drive, but some posts mentioned it not working well with btrfs (/ and /home subvolume), which is the bulk of my drive.
I have some ideas how I might to pull it off. My preliminary idea is:
- clone my boot partition with clonezilla
- use btrfs-clone or moving my butter to transfer the btrfs partition
- resize the partitions with gparted (and add swap?)
The two aspects I'm uncertain about are:
- UUIDs
- fstab
I plan to replace the old drive, so the system will not have two drives with the same UUID. If the method results in a new UUID I need to edit fstab.
As you can see I'm not sure how to proceed. Maybe I can just use clonezilla or dd to clone my whole drive? If someone has experience with such a switch or is just a lot for familiar with the procedures, I would love some tips and insight.
Thanks for reading.
////////////////////////////////////////////////////////////////////////////////////////////////////////////
EDIT: Thinking about how to do it, might have actually taken longer than the procedure itself. For anyone in a similar situation, I was able to replace the drive with these steps:
- clone the whole drive (new drive has a bigger capacity) with clonezilla
- physically switch the drives
- boot into a live medium and resized the btrfs partition on the new drive with gparted
- boot into the main system and adjust the filesystem size with
sudo btrfs filesystem resize max /
With two NVME drives (even though one was in a USB M.2 enclosure) everything took about 30 minutes. About 300 gigs of data were transferred. I haven't found any problems with the btrfs partition thus far. Using dd like others recommended might work as well, but I didn't try that option.
What the fuck is an SBAT and why does everyone suddenly care
Follow up to: “Something has gone seriously wrong,” dual-boot systems warn after Microsoft update
> SBAT was developed collaboratively between the Linux community and Microsoft, and Microsoft chose to push a Windows update that told systems not to trust versions of grub with a security generation below a certain level. This was because those versions of grub had genuine security vulnerabilities that would allow an attacker to compromise the Windows secure boot chain, and we've seen real world examples of malware wanting to do that (Black Lotus did so using a vulnerability in the Windows bootloader, but a vulnerability in grub would be just as viable for this). Viewed purely from a security perspective, this was a legitimate thing to want to do.
...
> The problem we've ended up in is that several Linux distributions had not shipped versions of grub with a newer security generation, and so those versions of grub are assumed to be insecure (it's worth noting that grub is signed by individual distributions, not Microsoft, so there's no externally introduced lag here). Microsoft's stated intention was that Windows Update would only apply the SBAT update to systems that were Windows-only, and any dual-boot setups would instead be left vulnerable to attack until the installed distro updated its grub and shipped an SBAT update itself. Unfortunately, as is now obvious, that didn't work as intended and at least some dual-boot setups applied the update and that distribution's Shim refused to boot that distribution's grub.
...
> The outcome is that some people can't boot their systems. I think there's plenty of blame here. Microsoft should have done more testing to ensure that dual-boot setups could be identified accurately. But also distributions shipping signed bootloaders should make sure that they're updating those and updating the security generation to match, because otherwise they're shipping a vector that can be used to attack other operating systems and that's kind of a violation of the social contract around all of this.
I wrote a Vim Reference Guide (beginner to intermediate level)
Hello!
I am pleased to announce a new version of my Vim Reference Guide ebook.
This is intended as a concise learning resource for beginner to intermediate level Vim users. It has more in common with cheatsheets than a typical text book. Topics like Regular Expressions and Macros have more detailed explanations and examples due to their complexity. I hope this guide would make it much easier for you to discover Vim features and learning resources.
Links:
- Web version: https://learnbyexample.github.io/vim_reference/
- PDF/EPUB versions: https://learnbyexample.gumroad.com/l/vim_reference_guide (FREE till 31-Aug-2024)
- Markdown source: https://github.com/learnbyexample/vim_reference
- Video demos: https://www.youtube.com/playlist?list=PLTv2U3HnAL4NN2tK-59ZiNBm-o64-Yvos
Did you know that Vim has an easy mode, which is actually very hard to use for those already familiar with Vim? See my blog post for more details!
I would highly appreciate it if you'd let me know how you felt about this book. It could be anything from a simple thank you, pointing out a typo, mistakes in code snippets, which aspects of the book worked for you (or didn't!) and so on. Reader feedback is essential and especially so for self-published authors.
Happy learning :)
Resume work from backup on another device?
I use 2 different computers in 2 different locations both running Universal Blue.
I was wondering if there is any way to create a backup system where i could backup Computer1 over the internet to Computer2 and continue work like nothing happened with all the user data and installed applications being there. The goal is to only need to transfer the user data/applications and no system data (that should be the same for both because of Ublue, right?), to keep the backup size small.
To be clear, i need help figuring out the backup part, not the transfering over the internet part.
If I were to backup the directories on Computer1, which store user data, with for example borgbackup, could I restore them on Computer2 and have a working system? Or would there be conflicts because of more low level stuff missing like applications and configs? Which directories would I need and which could be excluded?
Is there a better option? Any advice is appreciated!
I also came across btrfs snapshot capabilities and thought they could possibly used for this. But as far as I understand it, that would mean transferring the whole system and not only the data and applications. Am i missing something?
If you have installed Linux on a Microsoft Surface Pro, what was your experience?
I'm looking for a cheap and portable tablet that I can use for writing. Microsoft Surface Pro tablets, at least around the gen 4 models, are rather cheap to buy used, and they seem decently well made. Naturally, were I to buy one, I would have to install Linux onto it.
I've been peripherally aware of the Linux Surface project for some time now. I looked at it recently, after having not for some time, and it seems that they have really made good progress compared to what I remember, and it's making me much more interested in trying to install Linux on a Surface Pro.
Having never owned a Surface Pro, I'm not sure which models are the most reliable and sturdy. I'm not looking for something that's the flashiest; I want something that works well. I want something pragmatic — something akin to the idea of an older era of Thinkpad (eg T460). I want a pen with low input delay and good accuracy, reliable and responsive touch controls, and a decent display. I was thinking the Surface Pro 4 might be a good choice, but it's hard to know as there aren't many videos out there of people installing Linux on them, so I'm wondering what your experience has been with Microsoft Surface Pro's and installing Linux on one.
---
Cross-posts:
- https://sh.itjust.works/post/23997573
Linux Market Share Reaches New Peak: July 2024 Report
> The Linux operating system has reached a notable milestone in desktop market share, according to the latest data from StatCounter. As of July 2024, Linux has achieved a 4.45% market share for desktop operating systems worldwide.
> While this percentage might seem small to those unfamiliar with the operating system landscape, it represents a significant milestone for Linux and its dedicated community. What makes this achievement even more thrilling is the upward trajectory of Linux's adoption rate.
...
> According to the statistics from the past ten years, It took eight years for Linux to go from a 1% to 2% market share (April 2021), 2.2 years to climb from 2% to 3% (June 2023), and a mere 0.7 years to reach 4% from 3% (February 2024). This exponential growth pattern suggests that 2024 might be the year Linux reaches a 5% market share.
What is the most duct-tape thing you've done to Linux?
tell me the most ass over backward shit you do to keep your system chugging? here's mine: sway struggles with my dual monitors, when my screen powers off and back on it causes sway to crash. system service 'switch-to-tty1.service' ``` [Unit] Description=Switch to tty1 on resume After=suspend.target
[Service] Type=simple ExecStart=/usr/local/bin/switch-to-tty1.sh
[Install]
WantedBy=suspend.target
'switch-to-tty1.service' executes '/usr/local/bin/switch-to-tty1.sh' and send user to tty1
#!/bin/bash
Switch to tty1
chvt 1
.bashrc login from tty1 then kicks user to tty2 and logs out tty1.
if [[ "$(tty)" == "/dev/tty1" ]]; then
chvt 2
logout
fi
```
also tty2 is blocked from keyboard inputs (Alt+Ctrl+F2) so its a somewhat secure lock-screen which on sway lock-screen aren't great.
Bluetooth Audio Issues when launching a game?
![](https://lemmy.ml/pictrs/image/1d27535a-3323-4e60-8057-2862ebb93b76.png?format=webp&thumbnail=128)
![](https://lemmy.ml/pictrs/image/1d27535a-3323-4e60-8057-2862ebb93b76.png?format=webp)
Hi there, I just acquired myself the Sennheiser Momentum 4, mainly for using while communting + work. But figured i'd try them out for some gaming too. They work just fine when watching YT or any video, but when I launch a game the audio quality changes significantly. I have no idea how or why its doing it, nor how to fix it. I've tried all of these different audio profile options, but all of them make the audio either distorted, weak, or make it sound like the audio is trapped inside a room... Anyone know how to go about this? Audio works fine with my normal non-wireless headset.
My system is running Bazzite.
Appreciate any pointers to how to resolve this.
Projects To Watch Out For: Ladybird Browser
Finally, another web engine is being developed to compete with Chromium and Firefox (Gecko), and they're also working on a browser that will use it.
How do I word my grant application to keep my software FOSS?
Hi everyone,
I'm hoping there are people here who work on FOSS and have applied for grants to support their software financially. I am applying for a grant opportunity that is asking for a software from US gov agency.
My requirements:
- I want to publish it under Open Source Licenses like GPL (not MIT) so other corps can't take this to use on their product,
- The grant agency will get the source code, they can do whatever as long as the license is held,
- I will develop the features they want, and request during the duration of grant,
- I will want to continue development independently after the grant, or apply for more grants from other organizations,
- To clarify the previous point, I do not want to give them the final product so they own it, and I can no longer do anything on the program.
So, if anyone has done similar things, please give me advice on this. Their requirement says "a web repository" should be provided at the end, so I think I can apply with the intention of giving them the software code while keeping the rights. But I don't want to make a mistake in application/contract and lost the rights to the program, I want to develop a lot further than just the features they want for their use case.
Or at least dual license to protect the Open Source Side while giving the grant organization rights to take the code for their other programs because of the money they spent.
Java uses double ram.
Let's be honest: I only use Java for Minecraft. So I only debugged with it. But all version, server or client, all launchers. All of them use double (or more) RAM. In the game the correctly allocated amount is used, but on my system double or more is allocated. Thus my other apps don't get enough memory, causing crashes, while the game is suffering as well.
I'm not wise enough to know what logs or versions or whatever I should post here as a cry for help, but I'll update this with anything that'll help, just tell me. I have no idea how to approach the problem. One idea I have is to run a non-Minecraft java application, but who has( or knows about) one of those?
@[email protected]'s request: > launch arguments [-Xms512m, -Xmx1096m, -Duser.language=en] (it's this little, so that the difference shows clearly. I have a modpack that I give 8gb to and uses way more as well. iirc around 12)
> game version 1.18.2
> total system memory 32gb
> memory used by the game ! I'm using KDE's default system monitor, but here's Btop as well: !
> this test was on max render distance, with 1gb of ram, it crashed ofc, but it crashed at almost 4gbs, what the hell! That's 4 times as much
I'm on arch (btw) (sry)
after any any pacman manipulation my layout set up is broking
I using sddm and installed awesomeWM. And using /usr/share/sddm/scripts/Xsetup
for my dvorak layout(setxkbmap us -v dvorak). But after each pacman update or installation my configuration is not working. I'm new to artix/arch, so can you help me?
Running Arch in chroot
I am using Debian for long time and really like it for stability. Recently I wondered if it is possible to run Arch Linux from chroot. I want to run full Wayland session from Arch. I found Archbox project and it is worked for me, but I couldn't start any Wayland compositor from tty (Error: can't connect to Wayland socket . ). How can I properly do this? Or maybe there is a better way than chroot?
Why Wayland adoption to have official support in programs is so slow?
Wayland seems ready to me but the main problem that many programs are not configured / compiled to support it. Why is that? I know it's not easy as "Wayland support? Yes" (but in many cases adding a flag is enough but maybe it's not a perfect support). What am I missing? Even Blender says if it fails to use Wayland it will use X11.
> When Wayland is detected, it is the preferred system, otherwise X11 will be used
Also XWayland has many limitations as X11 does.
@possiblylinux127 @DaPorkchop_. ZFS has a persistent L2ARC cache now.
The name KDE was intended as a wordplay on the existing Common Desktop Environment, available for Unix systems.[6] CDE was an X11-based user environment jointly developed by HP, IBM, and Sun through the X/Open consortium, with an interface and productivity tools based on the Motif graphical widget toolkit. It was supposed to be an intuitively easy-to-use desktop computer environment.[7] The K was originally suggested to stand for "Kool", but it was quickly decided that the K should stand for nothing in particular. Therefore, the KDE initialism expanded to "K Desktop Environment" before it was dropped altogether in favor of simply KDE in a rebranding effort in 2009.[8]
https://en.wikipedia.org/wiki/KDE
(TIL the creator of KDE studied at the same university as me!)
Mandatory read on the subject for the curious (also goes over Secure Boot, Boot Guard etc):
I'd say it comes in 3 main parts:
-
Part of it is that he's popular, and Lemmy/Reddit has a culture of hating things once they get too mainstream.
-
He had a Linux challenge and lots of things went wrong for him (some his fault, some not his fault IMO), many in the Linux community hate him for that and say it was all on him. I've seen a handful even go as far as to say it was staged from the beginning to make Linux look bad.
-
(By far the most valid IMO) Several months ago LTT was hit by three scandals at the same time:
-
They improperly tested a pre-release product from a 2-man team, saying it was shit, then sold that prototype (only one in existence) when the two guys actually wanted it back, after which, they lied about saying they had offered the two guys a full refund (they hadn't yet), and Linus said that he didn't sell the prototype and that the two guys were lying - what he'd actually done is auction it (as if auctioning something isn't selling it lol)
-
After months and years of benchmark mistakes, incorrect product information, etc, a LTT employee threw shade at Gamers Nexus and Hardware Unboxed, saying that the way they benchmark will be prone to mistakes because it's less automated. I don't actually think their statement was meant in a bad way, but it certainly came across that way, and it's a bad look when LTT is constantly making mistakes.
-
A former LTT employee, Madison, came out and said she was sexually harassed at LTT and her concerns weren't taken seriously. Also that she was constantly belittled, and often asked to work unpaid overtime, without much warning, or while she was at home. Two other former LTT staff appear to have, at least in part, corroborated her side of the story. There was also a secret recording from Linus addressing improper behaviour (no names mentioned though), that happened to originate from immediately after Madison left. For balance, LTT hired a law firm to investigate this, and they found LTT to be in the clear.
Gamer's Nexus did a video about point 3 in great detail (minus the Madison part). It also goes over another issue with LTT - ethical problems in terms of how they cover some products/companies, some hiring choices, and investing in a company they review/review the competitors of.
Do you think DEs just have a huge list of package names to app names, or how do you imagine this would work?
In reality, it's of course fully on Gnome, as it's part of their code. Nobody except for Gnome has anything to do with the name that's being shown.
The kernel was almost named freax
Did you know that kernel releases have codenames?
My favourite being 4.0: "Hurr durr I'ma sheep" because I remember taking part in that poll.
At the point where the feds are paying Israelis millions to break your boot shit, they're paying dudes to watch you type in your password or any number of other things. I'd argue as long as you're not among the [number of prey] the predators are looking to take down at the back, for whatever category of shit you're in, you're fine
Have you tried CoreCtrl? That has made life on my new Thinkpad much easier.
Keep EFI bootloader off the computer (n+1 copies on a flash drive). Make /boot
partition fully encrypted.
Don't trust Secure Boot.
If you can, try the coreboot.
OP is on OpenWRT (a router distro), and Alpine. Those distros don't come with very much by default, and perl is not a core dependency for any of their default tools. Neither is python.
Based on the way the cosmo project has statically linked builds of python, but not perl, I'm guessing it's more difficult to create a statically linked perl. This means that it's more difficult to put perl on a system where it isn't already there, and that system doesn't have a package manager*, than python or other options.
*or the the user doesn't want to use a package manager. OP said they just want to copy a binary around. Can you do that with perl?
Not quite a scripting language, but I highly recommend you check out cosmo for your usecase. Cosmopolitan, and/or Actually Portable Executable (APE for short) is a project to compile a single binary in such a way that is is extremely portable, and that single binary can be copied across multiple operating systems and it will still just run. It supports, windows, linux, mac, and a few BSD's.
https://cosmo.zip/pub/cosmos/bin/ — this is where you can download precompiled binaries of certain things using cosmo.
From my testing, the APE version of python works great, and is only 34 megabytes, + 12 kilobytes for the ape elf interpreter.
In addition to python, cosmopolitan also has precompiled binaries of:
And a few more, like tclsh, zsh, dash or emacs (53 MB), which I'm pretty sure can be used as an emacs lisp intepreter.
And it should be noted these may require the ape elf interpeter, which is 12 kilobytes, or the ape assimilate program, which is 476 kilobytes.
EDIT: It also looks like there is an APE version of perl, and the full executable is 24 MB.
Plenty, as well as the upcoming release of Toy Story 5.
Fun investigations (tac
and factor
), things I never bothered to check the existence of until now (install -s
), and fundamentals I glossed over ([
). Pretty fun read.
And of course,
And that's why the '$cmd' command is my favourite Linux command.
GNOME has very little settings.
I actually gave Fedora Silverblue a try, documented here. This was not beginner friendly at all and still lacked many features in the end.
So this is the issue when GNOME doesnt allow basic things, like editing desktop files in a guided way, showing package names etc.
Ubuntu has had broken packages for a lot of 3rd party software (when I last used it, a few years ago), for example SciDAVis which I used, and Libreoffice and more. Flatpak works without issues here. Beginners will not add Flatpak and have issues here.
I didnt say anything about Arch I think. He also doesnt care about that. Using Arch as base really just makes sense for Valve, as it is neutral, not legally restricted etc.
uBlue deals with the constant sync (and coordination) issues between Fedora and rpmfusion. When using Arch, this is not needed.
I would go with Guile, because it is built-in to the Guix Package Manager which is a really good general-purpose package manager.
It ticks several of your boxes:
- has a CLI interpreter
- is a general purpose language, Scheme, amd compliant with revisions 5, 6, and 7 of the language standard
- allows writing in a functional style (it is one of the original functional programming languages)
- small disk footprint, but still large enough to be "batteries included"
- decent documentation, especially if you use Emacs
- simple setup: not so much, unless you are using Guix to begin with. The standard distribution ships with lots of pre-built bytecode files, you need an installer script to install everything.
It also has pretty good libraries for system maintenance and reporting:
@gomp Well no I know someone who does forth, not me really. Perhaps forth is just too low-level for anything except hardware drivers and so.
Go isn’t a scripting language, and it isn’t a system language either, despite what Wikipedia currently says. To be a system language, a language should support assembly language and shouldn’t require an embedded garbage collector. And if you’re going to make a compiled language anyway, why not make it capable of system work? Go is a platypus that’s popular with devops for some reason—probably Google’s clout in the industry.