nat (weh aspect) is a user on cybre.space. You can follow them or interact with them if you have an account anywhere in the fediverse.

@jordyd thanks, the bash scripts i used to make it aren't

@eq there is no such thing as a beautiful bash script

@jordyd but only because sed only lets you use 9 replacement expressions

@eq nothing wrong with Perl for sed/awk/bash-like uses

@jordyd Yeah but I'm lazy. if I wanted to make this properly I wouldn't have done it at all

@eq Well, finding a modern, working scsh implementation is a project in itself anyway

@eq This is entirely unrelated, but I want to see an R7RS implementation that is usable for both embedding (like Lua) and extending (like Python or Guile)

nat (weh aspect) @eq

@jordyd I barely ever use r7rs tbh, I mostly just stick with r5rs because it works with everything. also guile is practically made to be embedded as a scripting language? or do you mean, like, on embedded devices

· Web · 0 · 1

@eq The terminology is ambiguous but I'm using it the way Tcl uses it, which is like this:

embedding is when you compile the library together with custom native code into a single executable with no dependencies

extending is when you provide an extension (whether in the scripting language or a native module) to the already-existing interpreter as a loadable module

@eq So for example, chibi-scheme is an R7RS implementation which is good for embedding, as it's written entirely in C99 with no external dependencies, and is easy to link into a custom executable

@jordyd i am pretty sure guile can do both? idk how static linking works with Guile though

@eq Well, static vs dynamic linking isn't so much the issue. It's more a question of whether you can do things like restrict the symbols exported to scripts and the like

@eq So a program might provide a scripting interface for plugins without allowing plugins to run arbitrary code on the system

@jordyd mmmmmmmm i'm not sure how that works tbh but i'm sure you can do it

@eq If you can I'm not aware, but that doesn't mean it doesn't exist

@eq Contrary to popular belief I am unaware of many things

@jordyd anyway what major benefits does r7rs have over r5rs again :thinkhappy:

@eq Good, also very controversial, for a number of reasons I don't remember or care about

@eq Something about how macros are exported and namespacing (all languages with macros have this issue, Rust solves it by not exporting macros by default, and exporting them globally if required)

@eq C solves it by saying "what's a macro" while the C preprocessor giggles in the background

@eq Apparently there is an entire section of the manual I never cared to look at

@jordyd A common occurrence for GNU manuals

@eq Technically they should be called info pages. Luckily they're available online or I'd never read them

@eq
manpage: See the info pages.
me: It seems my problem is unsolvable and I'll need to use some other software.

@eq It's mostly an R5RS subset, so it doesn't break most things