← Back to context

Comment by lioeters

4 days ago

Fun article and project. I enjoyed reading and playing around with it.

My first run of `make release` failed with this error.

    cc -std=c11 -Wall -Wextra -Werror -pedantic -O3 -DNDEBUG -c -o build/main.o src/main.c
    src/main.c: In function ‘main’:
    src/main.c:23:3: error: ignoring return value of ‘fread’ declared with attribute ‘warn_unused_result’ [-Werror=unused-result]
      23 |   fread(file, file_size, 1, fp);
          |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    cc1: all warnings being treated as errors

It might have something to do with my local setup. It was simple enough to solve, to check the return value and exit with error code.

Ah oops small mistake with the C file handling. Thank you for the kind words on my project and finding the issue I'll be sure to fix it when I get the time.

  • The article was really good, explaining the details of how the virtual machine works.

    I starred the Git repo, good luck with the Hack Club!

Yes, to fix it: either check its return value, or add "(void)" at the end of the function, e.g. "(void)fread(...)". Since they did not add "(void)", I assume they meant to check the return value, they just simply forgot.