Use a smaller size for the lexer buffer

Large sizes are more efficient when it's actually buffered,
but most of the time `mmap` is used instead, and the extra size
just slows down allocation of lexer states.
This commit is contained in:
Rangi42
2024-05-17 20:59:42 -04:00
parent 352551d4f8
commit 39e9315e8a
2 changed files with 4 additions and 2 deletions

View File

@@ -7,14 +7,15 @@
#include <memory>
#include <optional>
#include <stdint.h>
#include <stdio.h> // BUFSIZ
#include <string>
#include <variant>
#include <vector>
#include "platform.hpp" // SSIZE_MAX
#define LEXER_BUF_SIZE BUFSIZ
// This value is a compromise between `LexerState` allocation performance when `mmap` works, and
// buffering performance when it doesn't/can't (e.g. when piping a file into RGBASM).
#define LEXER_BUF_SIZE 64
// The buffer needs to be large enough for the maximum `lexerState->peek()` lookahead distance
static_assert(LEXER_BUF_SIZE > 1, "Lexer buffer size is too small");
// This caps the size of buffer reads, and according to POSIX, passing more than SSIZE_MAX is UB