Skip to content

Instantly share code, notes, and snippets.

View AshtonSnapp's full-sized avatar
🍌
Working on all sorts of random projects

Ashton Scott Snapp AshtonSnapp

🍌
Working on all sorts of random projects
View GitHub Profile
@AshtonSnapp
AshtonSnapp / steamdump.txt
Created March 26, 2022 16:30
Steam machine broke, understandable have a nice day
steam.sh[17311]: Running Steam on manjarolinux 21.2.5 64-bit
steam.sh[17311]: STEAM_RUNTIME is enabled automatically
setup.sh[17387]: Steam runtime environment up-to-date!
/home/ashtons/.local/share/Steam/ubuntu12_32/steam-runtime/run.sh: line 102: cannot create temp file for here-document: No space left on device
steam.sh[17311]: Error: You are missing the following 32-bit libraries, and Steam may not run:
libpipewire-0.3.so.0
steam.sh[17311]: Steam client's requirements are satisfied
[2022-03-26 11:30:00] Startup - updater built Mar 14 2022 19:48:46
Installing breakpad exception handler for appid(steam)/version(1647446817)
Looks like steam didn't shutdown cleanly, scheduling immediate update check

Chasm Lexer Information

Here's how the Chasm lexer is meant to work:

The primary function, lex(), is called by main and processes the input source file into a super-list of tokens. This is done by iterating over each line of the source file and calling tokenize_line() on it. This function then processes the line of code into a list of tokens, usually involving other helper functions for specific types of arguments.

There is a context issue when it comes to identifier tokens, however. See, tokenize_line() doesn't have any context besides the line it is processing. As such, when defining identifiers the function can easily set the identifier type. However, when an identifier is being used the type simply cannot be set.

There are two ways to handle this issue: either give tokenize_line() more context, or have lex() do a final run through the tokens. The first option is great for handling symbol identifiers (as they must be defined before they are used) but not so great for handling label identi

@AshtonSnapp
AshtonSnapp / cellia.md
Last active September 8, 2020 20:56
Cellia RISC ISA InfoGist

Hello! This is just going to be a short Gist about the Cellia RISC ISA I've been working on, as my Wordpress blog is too unstable to actually use it.

Registers

First, let's talk about registers. The ISA, at the moment, has eight general purpose registers. Okay, technically it's four, but you'll see why I said eight.

The first two registers are labeled as iA and iB, with the i standing for "Integer" (I have plans for expanding the ISA later, but not now). These two registers are 16-bits long, but the high and low bytes can be accessed as seperate registers, called iAH, iAL, iBH, and iBL respectively.

Then there's the iX and iY registers. These are also 16-bits long, but the high and low bytes cannot be accessed seperately. iX and iY can also be used as index registers, in a similar manner as the X and Y registers of the 65xx series of processors.

@AshtonSnapp
AshtonSnapp / keybase.md
Created January 14, 2019 22:12
Updated keybase verf!

Keybase proof

I hereby claim:

  • I am ashtonsnapp on github.
  • I am snappgamez (https://keybase.io/snappgamez) on keybase.
  • I have a public key ASAlRWqlqNt0xOhyXVV4RGqV1GiFTz2n4RUe4V-GrBYJIwo

To claim this, I am signing this object: