Latest Tech News

Stay updated with the latest in technology, AI, cybersecurity, and more

Filtered by: pointer Clear Filter

So you want to parse a PDF?

Suppose you have an appetite for tilting at windmills. Let's say you love pain. Well then why not write a PDF parser today? The ideal world: how the specification should work Conceptually parsing a PDF is fairly simple: First, locate the version header comment at the start of the file Next you need to locate the pointer to the cross-reference Then you can find all object offsets Finally you locate and build the trailer dictionary which points to the catalog dicitionary Introduction to PDF

Constrained languages are easier to optimize

jyn, what the fuck are you talking about a recurring problem in modern “low-level” languages is that they are hard to optimize. they do not reflect the hardware, they require doing complex alias analysis, and they constantly allocate and deallocate memory. they looked at the structure/expressiveness tradeoff and consistently chose expressiveness. what does a faster language look like consider this paper on stream fusion in Haskell. this takes a series of nested loops, each of which logically

Stackless Traversal (2018)

Enlist (∊) is twice as fast in Dyalog 16.0 as it was in Dyalog 15.0. Pretty much across the board: ∊⍳100 is not going to be any faster, but whenever the argument is a nested array and the simple arrays it contains are reasonably small, there are huge performance improvements. How did we achieve the huge speedup? Constraints The usual way for a C programmer to write the traversal used in Enlist would be a simple recursive function: If the current array is simple, handle it, and if it is nested,

The provenance memory model for C

In this article, I will try to explain what this is all about, namely on how a provenance model for pointers interferes with alias analysis of modern compilers. For those that are not fluent with the terminology or the concept we have a short intro what pointer aliasing is all about , a review of existing tools to help the compiler and inherent difficulties and then the proposed model itself . At the end there is a brief takeaway that explains how to generally avoid complications and loss of opt

How to store Go pointers from assembly

2025-06-23 How to store Go pointers from assembly The standard Go toolchain comes with an assembler out of the box. Said assembler is highly idiosyncratic, using syntax inherited from Plan 9 and choosing its own names for platform-specific instructions and registers. But it’s great to have it readily available. More mundanely, Go comes with a garbage collector. This post explains how to make these two components play nice, if we want to manipulate Go pointers from our assembly. Preamble: Go’s