Fork me on GitHub
#off-topic
<
2020-08-21
>
noisesmith06:08:10

code as silly performance art, at least good for a laugh https://github.com/noisesmith/love

bowie 6
p-himik07:08:00

- You need more love in your life - I have 3 forks already!

noisesmith07:08:01

"the first language to work as its own code of conduct"

noisesmith06:08:30

it's the first feature complete pure bug free language

Hlodowig07:08:04

It's all but bug free 😆

millettjon00:08:09

Is there a recursive version?

noisesmith12:08:39

it's in a PR branch, there are related requests for safe containerized unit tests and security consultants

noisesmith12:08:24

it's really important not to run buggy versions of critical path code

noisesmith12:08:50

there are also questions open about bootstrapping

noisesmith07:08:13

I'm not the original author, but it's free, and it could be the oldest language / code

Mark Gerard07:08:32

Spec if pretty clear, very good and succinct documentation. Qn: How do I invoke it on the command-line? Also, what is the recommended IDE to execute this language

noisesmith07:08:13

it's executable by any sufficient system, and self describing / self executing (supposedly)

noisesmith07:08:05

I can't really explain how it works, it's inherited code, but I think it's worth sharing and using because I don't know of any bugs

Mark Gerard07:08:08

Hmmm, just got an exception: Call to noisesmith/love did not conform to spec. -- Spec failed -------------------- Not enough -- emo -- provided

Mark Gerard07:08:18

This could potentially get hairy, giving up ....

noisesmith07:08:19

I'm confused by that

noisesmith07:08:33

works on my machine

🚀 3
Mark Gerard07:08:50

I can't debug right now. But since Datomic gave us REBL, I will debug later on when I find the chocolates and flowers

noisesmith07:08:32

oh it's not that domain specific, much more general than the chocolates / flowers kind of thing (but it works for that too)

Mark Gerard07:08:38

I would classify this under Mood Specific Language as opposed to Domain Specific Language

noisesmith11:08:48

puts on hippy hat "but mooooods are a way of thinking maaaan"

Mark Gerard11:08:46

puts on agreeable hat

noisesmith04:08:13

if you said love was real, stupid people would give you a fate worse than death

noisesmith12:08:46

OK, I didn't quite intend it at first, but it's looking like it could become a fun little role-play style ARG in the form of a github project

cparen 3
sova-soars-the-sora17:08:25

when does the world switch to IPV6?

andy.fingerhut19:08:40

It has been in progress for years, and will be in progress for many more years to come, I think is the correct answer. I wouldn't be surprised if IPv4 remains in use somewhere nearly indefinitely, as long as the Internet exists.

3
sogaiu04:08:52

this is an old bit of info about ipv6, but when i originally read it i found it interesting: https://cr.yp.to/djbdns/ipv6mess.html not sure how much still applies

sova-soars-the-sora09:08:18

"Unfortunately, the straightforward transition plan described above does not work with the current IPv6 specifications. The IPv6 designers made a fundamental conceptual mistake: they designed the IPv6 address space as an alternative to the IPv4 address space, rather than an extension to the IPv4 address space." well F**K.

sova-soars-the-sora17:08:49

hope it's a palindromic unixtime

noisesmith17:08:19

that would be cute

coby18:08:49

I've been watching the Ziglang project from afar for a while and I was wondering about a detail in https://github.com/ziglang/zig/issues/853: > The bootstrapping process is O(1) and never gets more complicated than this What is the Big-O complexity in reference to here? i.e. if it were, say, O(n), what would n represent in the context of a compiler?

noisesmith18:08:10

the big O would have to be related to the number of linear scans (here it would have to be one) and to the complexity of any algorithms that do things like unifying types at compile time, I think

3
noisesmith18:08:16

it's speculation but it feels correct

noisesmith18:08:24

worth looking into

noisesmith18:08:46

I've been looking into zig myself recently, might actually use it at some point

coby18:08:44

thanks! and same!

hiredman18:08:51

seems like the blubiest blub of them all

hiredman18:08:15

"There is no hidden control flow, no hidden memory allocations, no preprocessor, and no macros."

hiredman18:08:32

there is no meta programming other than generating program text

hiredman18:08:30

I haven't really looked at it, but I bet the obsession with bootstrapping indicates a lack of an interpreter, or interpreter kind of thing, so nothing like a repl

noisesmith18:08:53

right, it attempts to be a radically simplified C

hiredman18:08:57

C is a blub

hiredman18:08:07

so zig is the blubiest blub of them all

lilactown18:08:26

when I looked at it awhile ago, it did have a form of metaprogramming where zig code was evaluated at compile-time (probably via the self-hosted compiler they also talk about in the PR linked). I didn’t see a REPL tho

lilactown18:08:42

zig’s error handling is also interesting

lilactown18:08:11

it certainly has different design constraints than e.g. Clojure

hiredman18:08:18

so it does have macros, it just refuses to call them that

lilactown18:08:35

I think it’s a bit brash to label it as a “blub language” without considering it 🙂

noisesmith18:08:51

blub is a structural definition, not an epithet

noisesmith18:08:29

of course he makes it sound like an epithet to communicate something to the reader :D

hiredman18:08:49

I dunno that blub is particularly well defined, but you know it when you see it

hiredman18:08:54

ugh, gross, I didn't realize paulg invented the term

lilactown18:08:05

hmm. blub to me always seemed like a fallacy, i.e. “everything without the features I have sux, and anything with stuff other than what I have is unnecessary and sux too”

lilactown19:08:08

when it’s really about tradeoffs & constraints. a “blub” language to me means something whose designer & community uses the blub fallacy to motivate its design

lilactown19:08:30

that was my understanding. sounds like I misunderstood your meaning

lilactown19:08:51

(also it sucks that paulg invented that term lol)

hiredman19:08:42

I think basically I take it to mean not very inspiring and lacking force multiplying features

hiredman19:08:40

which, we've already seen although the zig docs claim not to have macros, they then go on to talk about compile code evaluation

hiredman19:08:50

so it may not be a blub, it just may be muddled

noisesmith19:08:57

perhaps the distinction is using the same language for the compile time expressions as runtime?

lilactown19:08:15

it looks like it has the ability to run expression at compile-time but no ability to manipulate an AST

rakyi08:08:06

pardon my ignorance, but why is it bad the term blub was invented by paulg?

lilactown18:08:46

it seems like he’s saying that you won’t have to boostrap compile more than once

lilactown18:08:02

for example, let’s say zig decided to move to fully self-hosted and didn’t maintain a compiler in C++. Then as someone who needs to build the latest zig compiler from source, you would need to go back to the last version that could be built with C++ & compile that. Then use that version of the zig compiler to compile the latest zig compiler 😅

coby18:08:14

Compilers all the way down! 🐢

lilactown18:08:05

n can grow if you need a specific version of zig in order to build the latest zig. So you could end up with something like: I want to build zig version Z… Build last C++ version (call it version X). Z can only be compiled with version Y and up. So I fetch the source for version Y and compile it. Now that I have Y, I can build version Z.

noisesmith18:08:55

this is much more likely correct than my guess above, thanks

lilactown18:08:20

I think what Andrew’s saying is that by always maintaining a C++ version of the zig compiler, you can always bootstrap the latest version of zig on a new platform as long as the platform has a C++ compiler available (which is a pretty low bar)

lilactown18:08:44

(btw I know nothing about zig, just an educated guess from the context)

coby18:08:25

Yeah. That makes sense to me. O(1) in that sense is a pretty precise and succinct summary of the goals of the language, so that fits!

dominicm20:08:16

Building java is a nightmare for this reason