Nick Appleton

114 Followers
100 Following
1.2K Posts

An electrical engineer working in Sydney as an audio DSP engineer while pretending to be a computer scientist.

I'm interested in: software synthesisers, pipe organ simulation, multi rate signal processing and filter banks, IIR filter design and efficient numerically robust implementations, audio virtualisation, dynamic filtering, high performance software, programming language design.

wwwhttps://www.appletonaudio.com
GitHubhttps://github.com/nickappleton
DSP Alt@nickappleton
If SQL is pronounced "sequel" then surely DNS is pronounced "Dennis"?

New article! A user *cough* @aras *cough* is reporting full system freezes while using Superluminal on Linux. What do you do? Cry? Well, we did a little bit.

But we also dove into the kernel...again, this time finding & fixing several issues in eBPF's spinlock implementation. Read all about it:

https://rovarma.com/articles/a-tale-about-fixing-ebpf-spinlock-issues-in-the-linux-kernel/

A tale about fixing eBPF spinlock issues in the Linux kernel | Ritesh Oedayrajsingh Varma

A system freeze led us deep into Linux spinlock internals, where we helped find not one but three bugs in the kernel's resilient locking code used by eBPF.

People who can't say "I made a mistake" are a problem
@slembcke writing FFTs that are actually fast is a real art form. I wrote the FFT library I use in my projects about a decade ago and tweaked it to get it fast on NEON and amd64. Heaps of fun.
I used to write C. Now I write email.
@funkylab But yeah, the more I figure out, the more it seems like the answer to every edge case is: “whatever the easiest thing would be to implement is the answer”
@funkylab I agree with you about the semantics around if directives in this particular example. The unclear part is the definition of what “#pragma once” actually does. You could argue that in the second processing of the file, when it sees the pragma, it knows that the file is already being processed lower in the file stack. So you could reason: maybe it should abort the processing and assume the file had been processed.

@funkylab it’s really to do with it not being standardised more than anything else. Like what is the expectation of preprocessing the following file lol.h

#ifndef foo
#define foo
#else
#pragma once
#endif
#include "lol.h"
Yo

Is it a single “Yo” or two lines of “Yo”?

If it was defined that it needed to be the first thing in a file following whitespace, I think i’f be fine with it.

I’m writing a C preprocessor (don’t even ask) and it’s horrible. I literally have the c90 and c99 specs in front of me and still keep using clang to preprocess code snippets to see what it does with edge cases. The whole thing has vibes of “write a formal spec that describes this exact awful C program using 50x as much english text as code in the program”. Also “#pragma once” is awful.
@rygorous blocks contain frames of samples except when the frames are actually blocks of samples or when samples are actually frames.