Mike’s Place

Programming

Here are the pages tagged 'programming':

C++ in Micro Environments

This is a follow-up to my Minimal C++ article. It might be helpful to read that article first, in order to understand the context better.

Here, I present a relatively refined—and featherweight—method for using C++ in “micro” environments: think 16- or 32-bit microcontrollers with memory on the order of 64–256 KiB of storage, usually split between the program and runtime memory (RAM).

Read the full post…

Minimal C++

I keep talking about—and getting asked about—something that I refer to as “Minimal C++”. To be clear, there are a few points I should start of by stating explicitly: This is not—as far as I’m aware—a term used elsewhere. It is not a new, different, or distinct language from C++. It is simply a model for using C++ that is different from the traditional heavyweight model using the C++ standard runtime and standard template libraries.

Read the full post…

What the Hell is an Event Loop Anyway?

One of the more formative moments in my career as a programmer and as a coder, was the insight that I gained when I truly understood what an event loop is. In fact, until I did, I thought the same thing as some others out there do: that glib, Qt, APR, etc. all provide “event loops”. But, they do not. What they do do, is provide a useful abstraction of the underlying event loop so that programmers can focus on their logic without mucking about the system.

Read the full post…

Creating Statically Linked ELF Executables

This writeup was inspired by a conversation on Mastodon. The Problem It is really easy to do something silly with an ELF file, such as accidentally create a dynamically-linked one as opposed to a statically-linked one. This is incredibly easy to do because in nine out of ten situations, you want to create an ELF program that uses shared libraries. Also, perhaps counter-intuitively, when linking a PIE binary, it is an ELF shared object with an entrypoint, not an ELF executable.

Read the full post…