diff options
author | thing1 <thing1@seacrossedlovers.xyz> | 2024-10-15 10:19:30 +0100 |
---|---|---|
committer | thing1 <thing1@seacrossedlovers.xyz> | 2024-10-15 10:19:30 +0100 |
commit | faef2d81c224b715c5e429d04c59ba50fb772d9e (patch) | |
tree | 2f75197a884ded3486c14e09908cb23bd24b968c | |
parent | 3564e513623bb3fc4d528d3d29df9aa91dae1396 (diff) |
added a stupid amount of work to zpy, and started the document work in latex
rather than groff
51 files changed, 3536 insertions, 98 deletions
diff --git a/comp/lucas-standen-NEA/code2/Makefile b/comp/lucas-standen-NEA/code2/Makefile index 126bed6..4dc4224 100644 --- a/comp/lucas-standen-NEA/code2/Makefile +++ b/comp/lucas-standen-NEA/code2/Makefile @@ -16,6 +16,7 @@ install: zpy cp ./zpy /usr/local/bin/zpy cd stdlib && make install + cd zpypkg && make install example: zpy cd examples && make diff --git a/comp/lucas-standen-NEA/code2/autodoc/Makefile b/comp/lucas-standen-NEA/code2/autodoc/Makefile deleted file mode 100644 index 76ef5c1..0000000 --- a/comp/lucas-standen-NEA/code2/autodoc/Makefile +++ /dev/null @@ -1,11 +0,0 @@ -autodoc: autodoc.c - cc autodoc.c -o autodoc -ggdb - -install: autodoc - cp autodoc /usr/local/bin/autodoc - -uninstall: - rm /usr/local/bin/autodoc - -clean: - rm autodoc diff --git a/comp/lucas-standen-NEA/code2/autodoc/autodoc b/comp/lucas-standen-NEA/code2/autodoc/autodoc Binary files differdeleted file mode 100755 index 0ef6fad..0000000 --- a/comp/lucas-standen-NEA/code2/autodoc/autodoc +++ /dev/null diff --git a/comp/lucas-standen-NEA/code2/autodoc/autodoc.c b/comp/lucas-standen-NEA/code2/autodoc/autodoc.c deleted file mode 100644 index d8e7583..0000000 --- a/comp/lucas-standen-NEA/code2/autodoc/autodoc.c +++ /dev/null @@ -1,73 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <stdbool.h> - -typedef struct docpair { - char *doc; - char *func; -} docpair; - -docpair funcs[2048]; -int count = 0; - -//# returns a bool as to weather s2 is contained fully in s1 -bool contains(char *s1, char *s2){ - int j = 0; - if (strlen(s1) < strlen(s2)) return false; - for (int i = 0; i < strlen(s1); i++){ - if (s1[i] == s2[j]){ - if (j+1 == strlen(s2)) return true; - j++; - } - } - return false; -} - -int main(int argc, char **argv){ - FILE *in; - if (argv[1][0] == '-') in = stdin; - else in = fopen(argv[1], "r"); - - char *search = argv[2]; - - char *line = malloc(512); - char *tmp = malloc(512); - - bool nextIsFunc = false; - - while (fgets(line, 512, in) != NULL){ - strcpy(tmp, line); - tmp[4] = '\0'; - if (strcmp(tmp, "//# ") == 0){ - funcs[count].doc = malloc(strlen(line)+1); - strcpy(funcs[count].doc, line); - nextIsFunc = true; - } - else if (nextIsFunc == true){ - funcs[count].func = malloc(strlen(line)+1); - strcpy(funcs[count].func, line); - nextIsFunc = false; - count++; - } - } - - if (search != NULL){ - for (int i = 0; i < 2048; i++){ - if (funcs[i].doc != NULL) - if (contains(funcs[i].func, search)) - printf("%s \e[1m%s\e[0m\n", funcs[i].doc, funcs[i].func); - } - } - else { - for (int i = 0; i < 2048; i++){ - if (funcs[i].doc != NULL) - printf("%s \e[1m%s\e[0m\n", funcs[i].doc, funcs[i].func); - } - } - - free(line); - free(tmp); - - -} diff --git a/comp/lucas-standen-NEA/code2/comp.c b/comp/lucas-standen-NEA/code2/comp.c index d49148e..a2440e2 100644 --- a/comp/lucas-standen-NEA/code2/comp.c +++ b/comp/lucas-standen-NEA/code2/comp.c @@ -33,6 +33,14 @@ void errorhandle(int type){ exit(1); } +//# this function will check if the value given is null, if it is, it will cause a sig segv and set the error msg +void checkNULL(void *value, char *msg){ + if (value == NULL) { + errmsg = msg; + kill(pid, SIGSEGV); + } +} + char *names[] = { "defun", // takes a func name, func return type, and args // 0 "endfun", // takes no args // 1 @@ -91,6 +99,8 @@ char *vartypeToC(char *str, char *out){ } name[i] = '\0'; i++; + + if (i > strlen(str)) checkNULL(NULL, "expected var type, got nothing"); for (; i < strlen(str); i++){ if (str[i] == ':'){ @@ -114,6 +124,7 @@ char *getVarName(char *exp){ char *out = malloc(strlen(exp)); memcpy(out, exp, strlen(exp)); char *pos = strchr(out, ':'); + if (pos == NULL) checkNULL(NULL, "expected var type, got nothing"); pos[0] = '\0'; return out; } @@ -122,7 +133,8 @@ char *getVarName(char *exp){ char *getVarType(char *exp){ char *out = malloc(strlen(exp)); char *pos = strchr(exp, ':')+1; - memcpy(out, pos, strlen(pos) + 1); + if (pos == NULL) checkNULL(NULL, "expected var type, got nothing"); + memcpy(out, pos, strlen(pos) + 1); return out; } //# this will convert mathmatical expressions, to the c style of maths @@ -145,14 +157,6 @@ astNode *processChildren(astNode *node){ return node; } -//# this function will check if the value given is null, if it is, it will cause a sig segv and set the error msg -void checkNULL(void *value, char *msg){ - if (value == NULL) { - errmsg = msg; - kill(pid, SIGSEGV); - } -} - //# this function will do the bulk of converting from zpy into c code char *compile(astNode *node){ char *out = calloc(0, MAXOUTLEN); diff --git a/comp/lucas-standen-NEA/code2/examples/Makefile b/comp/lucas-standen-NEA/code2/examples/Makefile index 18a9e64..d3ee327 100644 --- a/comp/lucas-standen-NEA/code2/examples/Makefile +++ b/comp/lucas-standen-NEA/code2/examples/Makefile @@ -1,9 +1,8 @@ all: - zpy raylib_example.zpy -o raylib_example -f -lraylib -f -lm -i raylib.h zpy spaceinvaders.zpy -o spaceinvaders -f -lraylib -f -lm -i raylib.h zpy fib_example.zpy -o fib_example -f -ggdb zpy str_example.zpy -o str_example -f -ggdb - zpy syntaxerr.zpy -o syntaxerr + zpy syntaxerr.zpy -o syntaxerr clean: - rm -rf fib_example raylib_example str_example spaceinvaders tmp.zpy.c + rm -rf fib_example raylib_example str_example spaceinvaders syntaxerr tmp.zpy.c diff --git a/comp/lucas-standen-NEA/code2/examples/fib_example b/comp/lucas-standen-NEA/code2/examples/fib_example Binary files differnew file mode 100755 index 0000000..bdd94ec --- /dev/null +++ b/comp/lucas-standen-NEA/code2/examples/fib_example diff --git a/comp/lucas-standen-NEA/code2/examples/helloworld/main b/comp/lucas-standen-NEA/code2/examples/helloworld/main Binary files differnew file mode 100755 index 0000000..653d84c --- /dev/null +++ b/comp/lucas-standen-NEA/code2/examples/helloworld/main diff --git a/comp/lucas-standen-NEA/code2/examples/helloworld/main.zpy b/comp/lucas-standen-NEA/code2/examples/helloworld/main.zpy new file mode 100644 index 0000000..ef0a288 --- /dev/null +++ b/comp/lucas-standen-NEA/code2/examples/helloworld/main.zpy @@ -0,0 +1,3 @@ +(defun main int) + (printstr "hello world\n") +(endfun) diff --git a/comp/lucas-standen-NEA/code2/examples/helloworld/zpybuild.sh b/comp/lucas-standen-NEA/code2/examples/helloworld/zpybuild.sh new file mode 100644 index 0000000..7f675c3 --- /dev/null +++ b/comp/lucas-standen-NEA/code2/examples/helloworld/zpybuild.sh @@ -0,0 +1,2 @@ +#!/bin/sh +zpy ./main.zpy -o main diff --git a/comp/lucas-standen-NEA/code2/examples/helloworldadv/helloworld.c b/comp/lucas-standen-NEA/code2/examples/helloworldadv/helloworld.c new file mode 100644 index 0000000..f1e746f --- /dev/null +++ b/comp/lucas-standen-NEA/code2/examples/helloworldadv/helloworld.c @@ -0,0 +1,4 @@ +#include <zpylib.h> +void helloworld(){ +printstr("hello world\n"); +} diff --git a/comp/lucas-standen-NEA/code2/examples/helloworldadv/helloworld.zpy b/comp/lucas-standen-NEA/code2/examples/helloworldadv/helloworld.zpy new file mode 100644 index 0000000..9e3553b --- /dev/null +++ b/comp/lucas-standen-NEA/code2/examples/helloworldadv/helloworld.zpy @@ -0,0 +1,3 @@ +(defun helloworld void) + (printstr "hello world\n") +(endfun) diff --git a/comp/lucas-standen-NEA/code2/examples/helloworldadv/main b/comp/lucas-standen-NEA/code2/examples/helloworldadv/main Binary files differnew file mode 100755 index 0000000..593fe40 --- /dev/null +++ b/comp/lucas-standen-NEA/code2/examples/helloworldadv/main diff --git a/comp/lucas-standen-NEA/code2/examples/helloworldadv/main.c b/comp/lucas-standen-NEA/code2/examples/helloworldadv/main.c new file mode 100644 index 0000000..a2b6927 --- /dev/null +++ b/comp/lucas-standen-NEA/code2/examples/helloworldadv/main.c @@ -0,0 +1,4 @@ +#include <zpylib.h> +int main(){ +helloworld(); +} diff --git a/comp/lucas-standen-NEA/code2/examples/helloworldadv/main.zpy b/comp/lucas-standen-NEA/code2/examples/helloworldadv/main.zpy new file mode 100644 index 0000000..05b6155 --- /dev/null +++ b/comp/lucas-standen-NEA/code2/examples/helloworldadv/main.zpy @@ -0,0 +1,3 @@ +(defun main int) + (helloworld) +(endfun) diff --git a/comp/lucas-standen-NEA/code2/examples/helloworldadv/zpybuild.sh b/comp/lucas-standen-NEA/code2/examples/helloworldadv/zpybuild.sh new file mode 100644 index 0000000..26424d7 --- /dev/null +++ b/comp/lucas-standen-NEA/code2/examples/helloworldadv/zpybuild.sh @@ -0,0 +1,4 @@ +#!/bin/sh +zpy ./main.zpy -c -o main.c +zpy ./helloworld.zpy -c -o helloworld.c +cc main.c helloworld.c /usr/local/share/zpylib/zpylib.o -o main -I/usr/local/share/zpylib/include -Wno-implicit-function-declaration diff --git a/comp/lucas-standen-NEA/code2/examples/dvd.png b/comp/lucas-standen-NEA/code2/examples/raylib_example/dvd.png Binary files differindex 8e219f7..8e219f7 100644 --- a/comp/lucas-standen-NEA/code2/examples/dvd.png +++ b/comp/lucas-standen-NEA/code2/examples/raylib_example/dvd.png diff --git a/comp/lucas-standen-NEA/code2/examples/raylib_example/main b/comp/lucas-standen-NEA/code2/examples/raylib_example/main Binary files differnew file mode 100755 index 0000000..b124ebf --- /dev/null +++ b/comp/lucas-standen-NEA/code2/examples/raylib_example/main diff --git a/comp/lucas-standen-NEA/code2/examples/raylib_example.zpy b/comp/lucas-standen-NEA/code2/examples/raylib_example/main.zpy index 7c6e599..cd6a382 100644 --- a/comp/lucas-standen-NEA/code2/examples/raylib_example.zpy +++ b/comp/lucas-standen-NEA/code2/examples/raylib_example/main.zpy @@ -1,3 +1,4 @@ +//# this function is my main loop (defun main int) (InitWindow 800 800 "test test") (SetTargetFPS 60) diff --git a/comp/lucas-standen-NEA/code2/examples/raylib_example/zpybuild.sh b/comp/lucas-standen-NEA/code2/examples/raylib_example/zpybuild.sh new file mode 100644 index 0000000..3916f3b --- /dev/null +++ b/comp/lucas-standen-NEA/code2/examples/raylib_example/zpybuild.sh @@ -0,0 +1,4 @@ +#!/bin/sh +zpy ./main.zpy -c -o main.c -i raylib.h +cc main.c /usr/local/share/zpylib/zpylib.o -o main -I/usr/local/share/zpylib/include -Wno-implicit-function-declaration -lraylib -lm +rm -rf main.c diff --git a/comp/lucas-standen-NEA/code2/examples/spaceinvaders b/comp/lucas-standen-NEA/code2/examples/spaceinvaders Binary files differnew file mode 100755 index 0000000..ec88002 --- /dev/null +++ b/comp/lucas-standen-NEA/code2/examples/spaceinvaders diff --git a/comp/lucas-standen-NEA/code2/examples/spaceinvaders.zpy b/comp/lucas-standen-NEA/code2/examples/spaceinvaders.zpy index 698999a..5e51ed3 100644 --- a/comp/lucas-standen-NEA/code2/examples/spaceinvaders.zpy +++ b/comp/lucas-standen-NEA/code2/examples/spaceinvaders.zpy @@ -8,6 +8,7 @@ (def exists:bool) (endstruct) +//# this checks if 2 entitys are touching (defun touching bool a:entity* b:entity*) (def r1:Rectangle) (def r2:Rectangle) @@ -24,6 +25,7 @@ (return (CheckCollisionRecs r1 r2)) (endfun) +//# the main loop of the program (defun main int) (InitWindow 800 800 "test test") (SetTargetFPS 60) diff --git a/comp/lucas-standen-NEA/code2/examples/str_example b/comp/lucas-standen-NEA/code2/examples/str_example Binary files differnew file mode 100755 index 0000000..c543ab7 --- /dev/null +++ b/comp/lucas-standen-NEA/code2/examples/str_example diff --git a/comp/lucas-standen-NEA/code2/examples/syntaxerr.zpy b/comp/lucas-standen-NEA/code2/examples/syntaxerr.zpy index c74d53b..87494ed 100644 --- a/comp/lucas-standen-NEA/code2/examples/syntaxerr.zpy +++ b/comp/lucas-standen-NEA/code2/examples/syntaxerr.zpy @@ -1,3 +1,5 @@ (defun main int) - (return) + (let x:int) + (set x 10) + (return 10) (endfun) diff --git a/comp/lucas-standen-NEA/code2/examples/tmp.zpy.c b/comp/lucas-standen-NEA/code2/examples/tmp.zpy.c new file mode 100644 index 0000000..2305f24 --- /dev/null +++ b/comp/lucas-standen-NEA/code2/examples/tmp.zpy.c @@ -0,0 +1,2 @@ +#include <zpylib.h> +int main(){ diff --git a/comp/lucas-standen-NEA/code2/parser.c b/comp/lucas-standen-NEA/code2/parser.c index 62f32fa..a84291b 100644 --- a/comp/lucas-standen-NEA/code2/parser.c +++ b/comp/lucas-standen-NEA/code2/parser.c @@ -27,7 +27,7 @@ strings *parse(FILE *f){ char *line = alloca(256); int count = 0; while (fgets(line, 256, f) != NULL){ - if (line[0] != '\n'){ + if (line[0] != '\n' && line[0] != '/'){ while (line[0] == '\t') line++; line[strlen(line)-1] = '\0'; strs->strs[count] = malloc(256); diff --git a/comp/lucas-standen-NEA/code2/zpy b/comp/lucas-standen-NEA/code2/zpy Binary files differnew file mode 100755 index 0000000..0c23ae3 --- /dev/null +++ b/comp/lucas-standen-NEA/code2/zpy diff --git a/comp/lucas-standen-NEA/code2/zpypkg/Makefile b/comp/lucas-standen-NEA/code2/zpypkg/Makefile new file mode 100644 index 0000000..dc86e53 --- /dev/null +++ b/comp/lucas-standen-NEA/code2/zpypkg/Makefile @@ -0,0 +1,4 @@ +install: zpypkg + cp zpypkg /usr/local/bin/zpypkg +uninstall: + rm /usr/local/bin/zpypkg diff --git a/comp/lucas-standen-NEA/code2/zpypkg/zpypkg b/comp/lucas-standen-NEA/code2/zpypkg/zpypkg new file mode 100755 index 0000000..95e59c8 --- /dev/null +++ b/comp/lucas-standen-NEA/code2/zpypkg/zpypkg @@ -0,0 +1,79 @@ +#!/bin/bash + +function init () { + if [ ! -e "main.zpy" ]; then + touch main.zpy + + echo -e "(defun main int)" >> main.zpy + printf "\t(printstr \"hello world\\\n\")\n" >> main.zpy + echo -e "(endfun)" >> main.zpy + + echo "#!/bin/sh" > zpybuild.sh + echo "zpy ./main.zpy -o main" >> zpybuild.sh + else + echo "zpypkg already in use!" + fi +} + +function advinit () { + if [ ! -e "main.zpy" ]; then + touch main.zpy + + echo -e "(defun main int)" >> main.zpy + printf "\t(printstr \"hello world\\\n\")\n" >> main.zpy + echo -e "(endfun)" >> main.zpy + + touch zpybuild.sh + echo "#!/bin/sh" > zpybuild.sh + echo "zpy ./main.zpy -c -o main.c" >> zpybuild.sh + echo "cc main.c /usr/local/share/zpylib/zpylib.o -o main -I/usr/local/share/zpylib/include -Wno-implicit-function-declaration" >> zpybuild.sh + echo "rm -rf main.c" >> zpybuild.sh + + else + echo "zpypkg already in use!" + fi +} + +function build (){ + sh ./zpybuild.sh +} + +function run (){ + ./main +} + +function clean (){ + rm -f ./main +} + +function remove () { + if [ -e "main.zpy" ]; then + rm main.zpy zpybuild.sh + else + echo "zpypkg not in use!" + fi +} + +case $@ in + "init") + init + ;; + "advinit") + advinit + ;; + "build") + build + ;; + "run") + build + run + ;; + "clean") + clean + ;; + "remove") + remove + ;; + *) + echo "unknown option ${@}" +esac diff --git a/comp/lucas-standen-NEA/writeup2/Note b/comp/lucas-standen-NEA/writeup2/Note new file mode 100644 index 0000000..b659af0 --- /dev/null +++ b/comp/lucas-standen-NEA/writeup2/Note @@ -0,0 +1 @@ +done on the analysis section move onto modelling diff --git a/comp/lucas-standen-NEA/writeup2/coverpage.ms b/comp/lucas-standen-NEA/writeup2/coverpage.ms new file mode 100644 index 0000000..e18f9c0 --- /dev/null +++ b/comp/lucas-standen-NEA/writeup2/coverpage.ms @@ -0,0 +1,1208 @@ +.TL +The solution To bad code +.AU +Lucas Standen +.AI +7949 +.AB + +.NH 1 +Reading this document +.LP +This document is writen in roff and can be found online at: + +https://github.com/standenboy/school/tree/master/comp/lucas-standen-NEA/writeup + +It is using the ms macro of troff. It can be compiled using the Makefile, +or make.sh. A table of +contents has been generated using pdftocgen, it is embedded into the pdf, +most pdf readers have +a button to open it (firefox has it in the top left, in zathura press tab +to view it). + +A note on formating of the roff, the text is limited to 80 characters per +line and is writen in +plain ascii, no utf8 emojis and the like. Code snippets are left in plain +text, while full files +are converted to a ps file via https://carbon.now.sh/ they should be 150mm ^ +2 (as ps is a vector +format this wont lower quality, you might need to zoom in though) and then +have there source linked +above them; assuming they are from a file and not a small example. + +.NH 1 +Analysis +.NH 2 +The current problem +.LP +For general small and simple projects, I write in C. However this leads to +hours of debugging due to +segfaults, and memory leaks. Due to the languages manual memory management +the programmer is +required to know so much information about the hardware they write for, +and the second anything goes +wrong, it is vague on how to fix things. + +.B "I need a language that stops me from shooting myself in the foot" + +C has been standard for many decades now and its age is showing, it lacks +many modern features like +OOP, or higher level functional abstractions, that have become common in +modern years due to there +helpfulness. This is not to fault C's achievements either, the language is +my personal choice for +most projects for a reason, it's fast and powerful; any solution I make +should not cut that away. + +.NH 2 +A solution +.LP +.BI "Zippy LANG" + +A next generation language, for general use. Designed for keeping code simple, +neat and readable. +It will be similar to functional languages, known for there strict ability +to keep code safe and +practical. The language should be interpreted like python, perl and lisp, +to allow for easy +debugging tools. + +The goal of Zippy is to make codding easier, while remaining fast, with a +interpreter writen in C. + +.NH 2 +What is a programming language +.NH 3 +A very simple explanation +.LP +At its lowest definition a PL is a set of specific words, that when given +to a computer in the +right order have a reproducible behaviour. A more human way of saying that, +would be its how we +control computers. +.NH 3 +Why are there so many +.LP +When someone is looking at code it can often be seen as just that, however +there are hundreds of +languages that all take the idea of "code" in very different ways. Some are +designed for specific +hardware, some are designed for making general use programs while others +are highly specialized. +It is important to see "code", as more than just one overarching term and +instead see where the code +is being used, and evaluate it from that. + + +.NH 2 +Researching, and getting a scope of the project +.LP +Before I start to design a language i should first find examples of others +and find what i want my +language to be like. + +I'd like my language to feel modern so i should take inspiration from what +other modern languages +do, however on the backed i want my language to be stable and fast, for that +i should look at +older projects. + +.NH 3 +Examples of older similar projects, that are a good base for my language +.NH 4 +Python +.LP +Python is a high level OOP language that was designed in 1991. It was made +to make programming easy +while still being able to use some of C's functions. Although it has become +standard for many use +cases, it is slow and inefficient, and very bloated. + +https://www.python.org/ + +Zippy should take pythons high level abstractions, as they make programming +very easy and it should +try and take notes from its libraries as they are mostly well written, +and well documented. +.NH 4 +Lisp +.LP +Lisp is the second ever programming language, developed at MiT, it is the +first functional language, +creating many common features like higher order functions, recursion, and +garbage collection. It is +generally not used any more as it feels old compared to other functional +languages, like Ocaml or +Haskell. + +https://lisp-lang.org/ + +Zippy should try to take alot from the syntax of lisp, () make it easy to +see what parts of code +will effect what, and make things easy to parse. +.NH 4 +Perl +.LP +Perl is scripting language designed for use in linux, when bash is too slow, +or not suited for the +job. Perl is often described as the glue of the universe (see xkcd +https://3d.xkcd.com/224/). +Its syntax is quite strange however and it is slow. Making it poorly suited +towards general use. + +https://www.perl.org/ + +Zippy should take from perls minimalism, it is a small language that is of +a similar size to bash +or zsh, while feeling closer to python. If Zippy can achieve a similar small +size, while remaining +powerful I will be happy. + +.NH 3 +Examples of new similar projects that are also a good base +.NH 4 +Gleam +.LP +Gleam is a modern language releasing in the past 5 years. It is highly +functional, with no mutable +data, no traditional loops. Instead recursion can be used to replace alot +of these features. +Gleam compiles to erlang/Beam bytecode, much like java to the jvm, and doing +this has made Gleam +a highly scalable language with good library support out the box. + +https://gleam.run/ + +Zippy should take from the functional elements of Gleam, as they keep programs +safer, however Zippy +should not remove all procedural elements, as for loops are very helpful +.NH 4 +Haskell +.LP +Haskell is another modern functional language known for being very complicated, +however incredibly +powerful. Its syntax feels very mathematical, and incredibly terse. + +https://www.haskell.org/ + +Perhaps Zippy could learn from Haskell, as it provides functional and +procedural elements, making it +a well rounded language +.NH 4 +Hare +.LP +Hare was designed to be a 100 year language, and thus stability is its main +goal, it is not set to +have a syntax change any time soon, and it has strong emphasis on memory +safety. It fits into the +same part of the tech stack as C, and thus it can be used for some very low +level work. + +https://harelang.org/ + +I think Zippy should have a strong emphasis on stability, much like Hare, +to many times have I segfaulted due to a +tiny mistake. Zippy should also look to Hare's small size, you can buy a +copy of Hare on a + +.B "SINGLE 3 1/2'' FLOLPY" + +.LP +This is something I too should try to achieve. + +.NH 3 +What should be taken away from these languages? +.LP +I was already leaning towards functional programming when I started this +project however now I +believe it's the only option for producing safe applications. Zippy will be +a functional language +with a strong emphasis on recursion. + +I also believe that I should take size of the interpreter into account, +as this is important for +keeping the project manageable and consistent. + +And finally I think that syntax should be inspired by Lisp, although Lisp +itself can be a messy +language, with the right changes I am confident that I can make a attractive +language for the 21st +century. + +.NH 2 +Clients +.LP +In a project of this nature, the Client is every programmer alive; which is +a pretty large scope. +To narrow this down as much as possible, I will interview a small handful +of people throughout the +project, of different skill levels. + +.NH 3 +Client 1, Amy C +.LP +My first client is a friend of mine, Amy C, she is a confident programmer +who has completed many +complicated projects. I am choosing her as a client as she can give me +technical feed back on my +project and its function/utility. +.NH 3 +Client 2, Rayn M +.LP +Another friend of mine, Rayn M, is a technical computer user, however he +does not know how to +program at a high level. He will be a good client as he can show me how my +language looks to +some one who doesn't understand the inside workings, helping me design the +structure of the code. +.NH 3 +Client 3, a normie +.LP +some stuff about how the normie finds the completed project. +.NH 3 +Client 4, myself +.LP +I've wanted to take out a project like this for a long long time, and this +is the perfect +opportunity to do so, I will be assessing myself along the way of this, +building the project to my +personal specification. + +.NH 2 +Questionnaires +.LP +It is important to get feedback from end users, so I will take multiple +questionnaires throughout +the project. I will then use them to slightly edit the requirements of my +project this should make +the final outcome more helpful and what people want. + +In the section bellow you will find questionnaires from the analyses stage +of my project. +.NH 3 +Questionnaire 1 for Amy C + +.BI "[30th April 2024]" +.BI "answered by Amy, see pull request she left" +.NH 4 +What do you find the most important in a language? (eg: speed, readability) +.LP +Speed, readability, debugging ease and disk space efficiency. +.NH 4 +What tools are important for a language to have? (eg: pkg-manager, IDE +integration) +.LP +IDE integration (things like tab complete and debugging tools), a package +manager, and the ability +to interact with the user through the command line easily. +.NH 4 +What features do you like from other languages (eg: C's advanced memory +management, haskell's terse +syntax) +.LP +The ability to pass the memory reference of an object or function and a +collection of built-in or +standard functions like "print", "split", or "sort". +.NH 4 +What do you want to program in this language (eg: websites, low level systems) +.LP +Lightweight command line tools and web back ends. +.NH 4 +Do you intend to use graphics in the programs you write? +.LP +No. +.NH 4 +Would you prefer a language that focuses on ease of use, or power of the code? +.LP +I like a good balance between the two. +.NH 4 +What were your last 3 projects? (could they have been written in Zippy?) +.LP +A website, a small command-line tool and a midi keyboard (program runs on +a Raspberry Pi Pico). +.NH 4 +How many languages would you use on a single project? (could Zippy be used +in your codebase?) +.LP +I try to use as little languages in a project as possible, so likely not in +an existing project. +.NH 4 +Do you care for low level control, or would you prefer high level abstractions? +.LP +I think low-level control is very important, but high-level abstractions +are convenient, so a good +balance between the two is best. +.NH 4 +Would you be happy to develop libraries for things that aren't already +implemented +(eg: an SQL library) +.LP +Potentially if it is simple enough to implement new things. + +.NH 3 +Notes from questionnaire 1 +.LP +Some of the key things that I'm taking away from this first questionnaire, +are my client/users +initial needs and use cases. I think it's clear my language can be of +assistance to my client, Zippy +will be a good language for web back ends and small command line tools, +which my client expressed +interested in. + +I find the fact my client is worried by executable size interesting, however +I doubt it will be an +issue; a ballooning code-base is unlikely as only one person is writing +the project. + +I am also taking on the fact that my client wants good command line tools, +so a pkg-manager and +bundler should be a priority, perhaps they could be written in Zippy after +the interpreter is done. + +.NH 2 +The first elements of the project +.LP +At this stage I can say that I'm confident in my project and its scope. I +have a goal in mind for +it. + +.B "The key things to take away from this section are:" + +.B ---- +Make a high level language with a useable set of features, to replace C in +many situations. + +.B ---- +Keep the language readable and easy, with powerful tools available. + +.B ---- +Ensure the language is well supported with tools like a pkg-manager. + +.NH 2 +Moddeling +.LP +In larger projects, when a programmer needs a data structure that the language +they are writing in +doesn't provide, they will need to make their own. + +Bellow are a few examples of these data structures that C doesn't already +provide. +.NH 3 +Linked lists +.LP +this is an alternative implementation of a list, where you store some data, +and the memory address +to the next node. Then you can move through the list by reading the data +then reading the data of +the next node, and then repeating until the 'next' part of the node is empty. + +A diagram showing this can be seen here: + +.PSPIC linkedlist.ps + +.LP +In C this is easy to implement as you can find a memory address very easily +with '&' to find where +a bit of data is stored. I will need to use a 'struct', which is a bit like +a class in C (however +you can't attach a function to it). A simple implementation looks like this: + +typedef struct ll { + void *data; // the data of the node + ll *next; // the next node + +} ll; + +.LP +The pro's of a linked list are the fact that they can have data appended to +the start or end easily +by changing the root node, or the next node. + +Linked lists have a few downsides, for example you can't move through them +backwards, and unless you +store it on its own, you cant find the length of it in a fast way. + +In my project I would like to use linked list in the AST (see later sections +for info), and to store +lists in the language. +.NH 3 +Dictionaries +.LP +A dictionary is a simple data structure that just stores, a bit of data, +and a number or string to +identify it. +A dictionary like a linked list can be implemented with a struct in c like so: + +typedef struct dict { + void *data; + int id; + +} dict; + +.LP +In my project I think I could use a linked list represent a Zippy variable +and an ID that i can use +to identify it, this could make execution faster as i can compare ID's +rather than string values + +.NH 2 +Prototyping hard features +.NH 3 +Abstract Syntax Trees (AST) theory +.LP +In a programming language many abstract data types will be used to allow +the code to execute, +however I think the hardest part of this is an abstract syntax tree. This +is a data structure that +holds the code in an ordered form that can be analysed and executed in a +simple way. It is a tree +structure, with the top node being a root and all lower nodes being things +needed to calculate the +root. It can be used not only for code but also for mathematical expressions. I +think the easiest +way to show it is via a mathematical example + +Take the follow expression for example: + +.BX "(1 + (10 * (3 - (2 * 4))))" + +We know that this is equal to -49 + +However for a computer this is far harder to understand. This is because it +has no understanding of +order of operation + +To solve this we use an AST (abstract syntax tree) + +When you solve that expression you know to start with (2 * 4), then 3 - +the answer to that and so on + +We can represent the steps as a tree like so: + +.PSPIC ast.ps + +.I "[Evalutates to 2 * (2 + 2)]" + +As you can see, you need to evaluate the expression in the most brackets +first, then the next, and +so on, working you way up + +You can evaluate code in a similar way, treating each operation (such as +-*/) +as functions, doing +the most deeply nested function first, then working up. Each expression can +be represented in this +tree, then to show a whole program you can create a list of trees + +.NH 3 +Implementing AST's +.LP +As a prototype i will make a program that can take mathematical expressions +and evaluate them, and +allowing for functions (in the form f(x)). +It will do this via AST's + +This prototype takes 173 lines of code, it takes a string as a cmd line +argument then converts it +into an abstract syntax tree, and finally it executes it. This is just a +simple prototype and thus +it is small in scope. It can only do simple operators (+-*/) and requires +literal values to be +surrounded by [] so it knows its not another expression to evaluate. + +https://github.com/standenboy/school/tree/master/comp/lucas-standen-NEA/code/proto/ast + +.PSPIC astg.ps + +.LP +Above is the code for the AST, it stores an operation (which is just an +integer), and it stores +a real left and real right value, along side two other nodes. The real values +are integers, this +would be the 2 numbers in reference in the expression. The 2 nodes are a +recursive data structure, +much like putting an object of a class inside the definition of that class +itself. They are used to +store values that may still be expressions, for example (+ [1] (+ [1] [1])) +the second part of this +expression would be in the "right" variable. When code is executed I can +check if "left", or "right" +are null and if they are i know that i am at the lowest expression that is +only literal values. +Then I can execute that node and work my way up the tree. + + +The exec function will execute the operation, unless there is a deeper node, +if there is a deeper +node, then it executes it, and places the result in the right or left spot +respectively. + +Expressions are taken as input with the following code, and converted into +the AST: + +https://github.com/standenboy/school/tree/master/comp/lucas-standen-NEA/code/proto/ast + +.PSPIC ast.c.ps + +Here is an example input and output: + + ./ast "(+ (- [3] [1]) (- [3] [1]))" + +.BX 4 + +Note the [] used to tell the program where the literal values are. + +Overall this was a relatively successful prototype, however it isn't fully +functional as a language +it has fit the design. + +The rest of the code is the process of converting the string input to literal +values and inserting +them into the AST + +.NH 3 +Feedback +.LP +From my first Client (Amy C), she said that putting the numbers inside square +brackets was +inconvenient and annoying and it would be better if the numbers were separated +by spaces instead of +separate square bracket surrounded literals. + +As this is a prototype I won't fix this issue, however in the actual language +this is a needed +feature that I will be implementing. + +.NH 3 +Mixing linked lists and AST's +.LP +Mixing these 2 data structures together you can repressent an entire program. A +linked list of +AST's is how Zippy will repressent all code the user writes + +Here is an example of this: + +.PSPIC AST+LL.ps + +.LP +In this example the linked list is represented by the numbers seen at the top, +and the AST's are the +tree's moving down. + +As you can see when a value is referenced that is from a different AST the +tree will link to another +one. This will work the same for function calls, however instead of linking +to value definitions it +will link to function definitions. + +.NH 2 +Objectives +.NH 3 +An interpreter for the Zippy language +.NH 4 +Linked list of AST's +.LP +All of a loaded program should be represented as a linked list of individual +AST's, The developer +should be able to access the AST for easy hacking. Functions can be represented +as a pointer to +another part of the list. +.NH 4 +A lisp like syntax +.LP +This is to ensure the language can be parsed quickly, and is easy to write. +.NH 4 +Functional language +.LP +This language should lean into the functional programming paradigm, taking +inspiration from other +functional languages such as lisp, and gleam. +.NH 5 +Recursion +.LP +Zippy must support recursive algorithms being implemented into it, this will +make the AST, have +nodes linking back to parent nodes in a linked list. +.NH 5 +Higher order functions +.LP +Zippy must support the usage of higher order functions, this will mean the +AST needs to have an +unlimited depth as otherwise the limit would be quickly reached, it can't +be hard-coded, it must be +dynamic. +.NH 4 +Performance +.LP +The interpreter must be fast and memory efficient, the language is designed +to work as an +alternative to C, one of the fastest languages of all time, the interpreter +must be fast, however +memory footprint is not as much of a requirement. +.NH 4 +Safe +.LP +Code that the user writes must be safe, and not prone to errors. This can +be handeled via the strong +syntax checker and type safety. + +.NH 3 +Standard library for Zippy +.NH 4 +io +.LP +The language must have a simple to use I/O library to make outputs easy. +.NH 4 +string +.LP +The language should have a sting library that provides a string type, and +many complex algorithms +that can be applied to them (concatenation, insertion, appending, splitting, +stripping). +.NH 4 +sorts +.LP +The language should have a sorting library that provides algorithms used +for sorting (like merge +sort). +.NH 4 +graphs +.LP +the language must have a graph library, that allows for easy creation and +working with graphs, it +should provide many algorithms to help traverse these graphs + +.NH 3 +Tooling for the Zippy language +.NH 4 +zpypkg +.LP +Zippy must provide a package manager, that allows code to be shared between +multiple users, easily. +It should sync projects via git and allow them to be stored on any git host +the user likes. +.NH 4 +Syntax checker +.LP +Zippy shouldn't have a built in syntax checker, instead it should be something +that can be run +independently of the interpreter, this means that a lot of the checking that +interpreted languages +do, can be done once by the developer, before shipping the app, as opposed +to every time the program +is run, which brings down performance. +.NH 3 +Integration with C, via a C API +.NH 4 +C API +.LP +You should be able to execute a string of Zippy code in C using a library +that is linked with +interpreter. This could allow Zippy to be used as a configuration language +like Lua. + +.NH 2 +Desirable features +.LP +If time allows I'd like to add some of the following features to flesh out +the language: +.NH 3 +Raylib support +.LP +Raylib is a powerful game engine for C, however it has been ported to most +languages under the +sun due to how simple it is. If I have time, porting Raylib to Zippy would +make the language +far more useable, as it can be use for graphics programming. + +https://www.Raylib.com/ + +.NH 3 +Vim integration. +.LP +Zippy should have integration with the Vim editor for syntax highlighting, +this can be done via +generating a linked list of AST's then colouring function calls a specific +colour, and variables +another, etc, etc. +.NH 3 +LSP +.LP +A LSP (language server protocol), is used in code IDE's to auto complete +code for you, I'd +like one for Zippy. Although I am unsure as to how to tackle this. I believe +a program called +treesitter can be helpful for this. +.NH 3 +Networking sockets +.LP +If possible I'd also like to provide bindings for unix network sockets, +however this would be +very difficult, as I would need to allow Zippy stucts to be directly converted +to C stucts, +when executing ELF symbols (Parts of an execuable file). + +.NH 1 +Design +.NH 2 +Language specification +.LP +Like any other programming language Zippy needs to have a defined syntax, +as mentioned in the +objectives section of Analysis, I want the language to follow a lisp like +syntax. + +I also believe higher order functions should be taken as standard and many +core functions will use +them. + +.NH 3 +Data types +.NH 4 +Basic types +.LP +i32 - signed integer of size 32 bits + +u32 - unsigned integer of size 32 bits + +i64 - signed integer of size 64 bits + +u64 - unsigned integer of size 64 bits + +char - single ascii code + +float - standard C float + +.NH 4 +Advanced types +.LP +function - a function that can be used + +generic - should be avoided, removes checks for data types when inputting +values to functions +will cause many runtime errors, however when absolutely needed it is useful. + +.NH 4 +Arrays +.LP +Arrays can be show like so: + +x:type[] + +With x being the variable name, type being the type of variable, and [] +showing its an array + +All arrays are dynamic, represented by a linked list on the back end. +.NH 5 +Strings +.LP +Strings, like in C are arrays of chars + +.NH 3 +Built in functions +.NH 4 +defun +.LP +(defun a:type b:type returntype + ... + ... + +) + +Returns a function that take A and B as an argument (fixed types), and +returns a value of +returntype. + +.NH 4 +let +.LP +(let x:type value) + +Creates constant x of type type to value. + +.NH 4 +set +.LP +(set x:type value) + +Creates/recreates the variable value of x to value. + +.NH 4 +if/elif/else +.LP +(if condition function) + +(elif condition function) + +(else function) + + +Executes the function provided if the condition is true. + +Elif works the same, except only if the previous if statement is false. + +Else executes only if all previous statements were false. + +.NH 4 +for +.LP +(for i (condition) function) + +Runs the function while the condition is true, and increments i every time +the function +is called. + +.NH 4 +while +.LP +(while condition function) + +Runs the function if the condition is true, keeps running until it is false. + +.NH 4 +symbol +.LP +(symbol a:type b:type c:type returntype name:char[] elf:char[]) + +Returns a function that takes arguments A, B, C (of fixed types), the name +of the function, +and the file path of the elf. +.NH 5 + +.NH 4 +Arithmetic operations +.LP +Simple operations + +(+ a b) returns a + b + +(- a b) returns a - b + +(* a b) returns a * b + +(/ a b) returns a / b + +.NH 4 +Comparison +.LP +All return true or false + +(= a b) returns if a = b + +(!= a b) returns if a != b + +(> a b) returns if a > b + +(< a b) returns if a < b + +(=> a b) returns if a => b + +(=< a b) returns if a =< b + +.NH 4 +cast +.LP +(cast a:generic type:char[]) + +returns a but cast to data type type, which is a string. + +.NH 4 +typeof +.LP +(typeof a:generic) + +returns in a string the type that variable A is. + +.NH 4 +terminate +.LP +(terminate error:error) + +Kills the program at the current point, frees all related memory, prints +error info stored in error. + +.NH 4 +return +.LP +(return a:type) + +Must be used in defun, returns "a" from the function, "a" must be of the +functions return type. + +.NH 3 +List of keywords +.LP +defun + +for + +while + +if + +elif + +else + +exit + +return + +symbol + +set + +let + +.NH 2 +Memory management +.LP +Memory will be allocated when a variable is initialized, and freed when the +program stops. +Although this isn't the fastest method, it is simple and has less runtime +overhead. + +.NH 2 +Questionnaire 2 for Rayn M +.NH 3 +How do you find this layout of the language? +.LP +.I "(5-6 points)" +- I like the immutable nature of the language +- I like the simplicity +- I like the low level performance this will have +- I dislike the word terminate +- I like the procedural approach, with the function robustness +- I dislike the brackets! +.NH 3 +Response +.LP +Although he does dislike some of my features I believe them to be core parts +of the language so +I will keep them. I will also keep his points in mind though, I don't want +to discourage learning +the language due to its abstract syntax. + +However as per his request I will change the terminate keyword to the more +normal exit. + +An updated keyword list is as flows: + +defun + +for + +while + +if + +elif + +else + +exit + +return + +symbol + +set + +let + +.NH 2 +What language do you use to make a programming language +.LP +As mentioned before Zippy will be written in C, with some parts being written +in Zippy itself. +I will try and keep most dependencies/libraries to a minimal to make the +project easier to manage. + +.NH 3 +What is C? +.LP +C was made by Dennis Ritchie, in 1972 at AT&T's bell labs. It was designed +to make programming low +level systems far easier than it had been before. It was used to create the +unix operating system +which would go on to inspire most modern operating systems in some way. (macos +still has code from +the original release of C+unix). + +The language quickly caught on outside of bell labs after more available +releases of unix arrived +such as bsd 4.4, sun os and GNU. It was found to be able to do all the things +that you could do in +ASM however with far less a headache. + +.NH 3 +Why is C? +.LP +As mentioned C can do anything that ASM can do, meaning it is lightning fast +and can take advantage +of direct memory access. This allows you to make very fast lightweight +executables that can rival +the performance of handwritten ASM (often beating it if you enable compiler +optimisations). It is +this that makes C the perfect language for any and all programming languages, +where speed is key, +and allfeatures need to be available are present. + +.NH 3 +How is C? +.LP +C is compiled to ASM, the main compilers available are clang, gcc and MSVC, +I will be using gcc +as it is generally standard in linux environments. + +Many build systems are available for C, the main ones being cmake and gnu +make. Both of them have +the goal of putting the compiling process in one command. Cmake is cross +platform (sorta windows +doesn't work well but it does work). + +.NH 3 +Libraries +.LP +The libraries I will use are the following: + +C stdlib + +C unistd + +C errno + +Unix device files + +Zippy strings + +Zippy graphs + +Zippy sorts + +Addition libraries (may not be implemented): + +Raylib + +C sockets + Zippy sockets + +.NH 3 +Modularization +.LP +To make the project more manageable I will split it into many C files, +this is to keep it from +becoming impossible to edit code. + +The file layout looks as follows: + +PLACE HERE + +As you can see this is split up over around 40 files and 16 folders, each +file should not go over +~500 lines of code. This is to keep everything as easy to manage as possible. + +This level of modularization in needed for the development of Zippy as +without it, files will become +a mess that can't be worked with. + +All .c files will be compiled into .o files, then the .o files can be linked +with the final zpy.c +to generate the final executable. + + +.NH 4 +Build system +.LP +The entire project is being build with GNU make files, each folder that +builds something will have +its own makefile. This will mean the entire project can be compiled with a +single make in the root +folder of the project. + +Example of make: + +make -j2 + +This will build all files specified by 'Makefile' with 2 threads. + +The project should be build with gcc, and ld. It should be build with the +-O3 build flag to ensure +the program runs as fast as possible. -O3 forces the compiler to build with +optimizations. + +When the project is finished, I will try compiling with clang and tcc, +to compare performance. + +.NH 2 +Time table +.LP +The first step is to tackle the interpreter, so the zpy.c file needs to be +finished. The tokenizer, +execution, and libs folders need to be finished, after this point you should +be able to execute +Zippy code however not syntax check it or get error handling. + +The next step is zpycheck, the syntax and error handler, this should be ran +before code is shipped +to the user. It can reuse a lot of code from the tokenizer and execution steps. + +Finally I need to make zpypkg, this should be easy as most of it can be +written in Zippy, and a few +bits can be written in bash. It should be a good test to how Zippy can +be written. + +If time allows it is at this point that I will write a Raylib library and +a unix/C sockets library. + +.NH 2 +Flow through the system +.LP +The alogrithum to run code is quite complex however it can be boiled down +to a few simple steps: + +.B "read the text file (strip line breaks and tabs)" +.LP +.B "create an empty linked list" +.LP +.B "get the first expression from the text file (with be encapsulated with +"()"" +.B "get the function call and its args into a token" +.LP +.B "if the arguments of the function are there own function call, then +convert them into a token" +.LP +.B "set that token as the argument in the first token" +.LP +.B "append the root token to the linked list" +.LP +.B "repeat until the text file string is empty" +.LP +.B "allocate memory for the program and prepare the exection step" +.LP +.B "at the start of the linked list traverse to the bottem of the tree +(made of tokens)" +.LP +.B "execute the lowest token" +.LP +.B "repeat until all tokens including the root have been executed" +.LP +.B "move to the next node of the linked list" +.LP +.B "repeat until the linked list is empty" + +.LP +Within each of these steps is many smaller steps. The hardest part will be +making the tokens, as +this requires alot of string manipultation. The execution will be a recursive +alogrithum. All trees +will be represented via structs (see section on AST's). + +PUT SOME FLOW CHARTS HERE + +.NH 1 +Technical Solution +.NH 1 +Testing +.NH 1 +Evaluation +.AE diff --git a/comp/lucas-standen-NEA/writeup2/writeup.aux b/comp/lucas-standen-NEA/writeup2/writeup.aux new file mode 100644 index 0000000..87403dd --- /dev/null +++ b/comp/lucas-standen-NEA/writeup2/writeup.aux @@ -0,0 +1,40 @@ +\relax +\providecommand\babel@aux[2]{} +\@nameuse{bbl@beforestart} +\providecommand\hyper@newdestlabel[2]{} +\providecommand\HyField@AuxAddToFields[1]{} +\providecommand\HyField@AuxAddToCoFields[2]{} +\babel@aux{english}{} +\@writefile{toc}{\contentsline {section}{\numberline {1}A breif head note and introduction}{3}{section.1}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {2}Analysis}{3}{section.2}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {2.1}The current problem}{3}{subsection.2.1}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {2.2}A solution}{3}{subsection.2.2}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {2.3}What is a programming language}{3}{subsection.2.3}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.3.1}A very simple explanation}{3}{subsubsection.2.3.1}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.3.2}Why are there so many}{4}{subsubsection.2.3.2}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {2.4}Researching and getting a scope of the project}{4}{subsection.2.4}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.4.1}Examples of older similar projects}{4}{subsubsection.2.4.1}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.4.2}Examples of newer similar projects}{4}{subsubsection.2.4.2}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.4.3}What should be taken away from these languages}{5}{subsubsection.2.4.3}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {2.5}Clients}{5}{subsection.2.5}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.5.1}Client 1: Amy C}{5}{subsubsection.2.5.1}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.5.2}Client 2: Rayn M}{5}{subsubsection.2.5.2}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.5.3}Client 3: Myself}{6}{subsubsection.2.5.3}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {2.6}Questionnaires}{6}{subsection.2.6}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.6.1}Amy C, initial ideas}{6}{subsubsection.2.6.1}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.6.2}Notes from questionnare 1}{6}{subsubsection.2.6.2}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {2.7}The first elements of the project}{7}{subsection.2.7}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {3}Modelling}{7}{section.3}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {3.1}Linked lists}{7}{subsection.3.1}\protected@file@percent } +\@writefile{lol}{\contentsline {lstlisting}{\numberline {1}Linked list example}{7}{lstlisting.1}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {3.2}Dictionaries}{8}{subsection.3.2}\protected@file@percent } +\@writefile{lol}{\contentsline {lstlisting}{\numberline {2}Dictionary example}{8}{lstlisting.2}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {3.3}Prototyping harder features}{8}{subsection.3.3}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.3.1}Abstract syntax trees (AST's) theory}{8}{subsubsection.3.3.1}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.3.2}Abstract syntax trees (AST's) practical}{9}{subsubsection.3.3.2}\protected@file@percent } +\@writefile{lol}{\contentsline {lstlisting}{../code/proto/AST/ast.c}{9}{lstlisting.-1}\protected@file@percent } +\@writefile{lol}{\contentsline {lstlisting}{../code/proto/AST/astg.c}{12}{lstlisting.-2}\protected@file@percent } +\@writefile{lol}{\contentsline {lstlisting}{../code/proto/AST/astg.h}{12}{lstlisting.-3}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {3.4}Feedback}{13}{subsection.3.4}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {3.5}Mixing linked lists and AST's}{14}{subsection.3.5}\protected@file@percent } +\gdef \@abspage@last{14} diff --git a/comp/lucas-standen-NEA/writeup2/writeup.fdb_latexmk b/comp/lucas-standen-NEA/writeup2/writeup.fdb_latexmk new file mode 100644 index 0000000..52f97a4 --- /dev/null +++ b/comp/lucas-standen-NEA/writeup2/writeup.fdb_latexmk @@ -0,0 +1,199 @@ +# Fdb version 4 +["pdflatex"] 1728905490.10155 "writeup.tex" "writeup.pdf" "writeup" 1728905492.58947 0 + "../code/proto/AST/ast.c" 1726310530.07745 2961 c47f93a2515bbdc975ff63648a7cdd5e "" + "../code/proto/AST/astg.c" 1726310530.07745 952 02073ee7971b5c86c469ca9979e7558e "" + "../code/proto/AST/astg.h" 1726310530.07745 275 d81b6b122dc745e84025255cf68ff265 "" + "/usr/share/texmf-dist/fonts/enc/dvips/cm-super/cm-super-ts1.enc" 1727349926 2900 1537cc8184ad1792082cd229ecc269f4 "" + "/usr/share/texmf-dist/fonts/map/fontname/texfonts.map" 1727349926 3524 cb3e574dea2d1052e39280babc910dc8 "" + "/usr/share/texmf-dist/fonts/tfm/jknappen/ec/tcrm1200.tfm" 1727349926 1536 74b7293ec3713bb7fdca8dd1bd1f469c "" + "/usr/share/texmf-dist/fonts/tfm/public/cm/cmbx12.tfm" 1727349926 1324 c910af8c371558dc20f2d7822f66fe64 "" + "/usr/share/texmf-dist/fonts/tfm/public/cm/cmbxti10.tfm" 1727349926 1532 9162035f4e7176612125649e348e2195 "" + "/usr/share/texmf-dist/fonts/tfm/public/cm/cmmi12.tfm" 1727349926 1524 4414a8315f39513458b80dfc63bff03a "" + "/usr/share/texmf-dist/fonts/tfm/public/cm/cmmi6.tfm" 1727349926 1512 f21f83efb36853c0b70002322c1ab3ad "" + "/usr/share/texmf-dist/fonts/tfm/public/cm/cmmi8.tfm" 1727349926 1520 eccf95517727cb11801f4f1aee3a21b4 "" + "/usr/share/texmf-dist/fonts/tfm/public/cm/cmr10.tfm" 1727349926 1296 45809c5a464d5f32c8f98ba97c1bb47f "" + "/usr/share/texmf-dist/fonts/tfm/public/cm/cmr12.tfm" 1727349926 1288 655e228510b4c2a1abe905c368440826 "" + "/usr/share/texmf-dist/fonts/tfm/public/cm/cmr17.tfm" 1727349926 1292 296a67155bdbfc32aa9c636f21e91433 "" + "/usr/share/texmf-dist/fonts/tfm/public/cm/cmr6.tfm" 1727349926 1300 b62933e007d01cfd073f79b963c01526 "" + "/usr/share/texmf-dist/fonts/tfm/public/cm/cmr8.tfm" 1727349926 1292 21c1c5bfeaebccffdb478fd231a0997d "" + "/usr/share/texmf-dist/fonts/tfm/public/cm/cmsy10.tfm" 1727349926 1124 6c73e740cf17375f03eec0ee63599741 "" + "/usr/share/texmf-dist/fonts/tfm/public/cm/cmsy6.tfm" 1727349926 1116 933a60c408fc0a863a92debe84b2d294 "" + "/usr/share/texmf-dist/fonts/tfm/public/cm/cmsy8.tfm" 1727349926 1120 8b7d695260f3cff42e636090a8002094 "" + "/usr/share/texmf-dist/fonts/tfm/public/cm/cmti12.tfm" 1727349926 1484 ed72f8f5cf654cda15ecc8e32bfcbee5 "" + "/usr/share/texmf-dist/fonts/tfm/public/cm/cmtt10.tfm" 1727349926 768 1321e9409b4137d6fb428ac9dc956269 "" + "/usr/share/texmf-dist/fonts/tfm/public/cm/cmtt12.tfm" 1727349926 772 9a936b7f5e2ff0557fce0f62822f0bbf "" + "/usr/share/texmf-dist/fonts/type1/public/amsfonts/cm/cmbx12.pfb" 1727349926 32080 340ef9bf63678554ee606688e7b5339d "" + "/usr/share/texmf-dist/fonts/type1/public/amsfonts/cm/cmbxti10.pfb" 1727349926 36554 b67dc2cfa451409e100b3fcf5f506509 "" + "/usr/share/texmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb" 1727349926 35752 024fb6c41858982481f6968b5fc26508 "" + "/usr/share/texmf-dist/fonts/type1/public/amsfonts/cm/cmr12.pfb" 1727349926 32722 d7379af29a190c3f453aba36302ff5a9 "" + "/usr/share/texmf-dist/fonts/type1/public/amsfonts/cm/cmr17.pfb" 1727349926 32362 179c33bbf43f19adbb3825bb4e36e57a "" + "/usr/share/texmf-dist/fonts/type1/public/amsfonts/cm/cmr6.pfb" 1727349926 32734 69e00a6b65cedb993666e42eedb3d48f "" + "/usr/share/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy10.pfb" 1727349926 32569 5e5ddc8df908dea60932f3c484a54c0d "" + "/usr/share/texmf-dist/fonts/type1/public/amsfonts/cm/cmti12.pfb" 1727349926 36118 fad905eba93cff5bce1e185fe980a177 "" + "/usr/share/texmf-dist/fonts/type1/public/amsfonts/cm/cmtt10.pfb" 1727349926 31099 c85edf1dd5b9e826d67c9c7293b6786c "" + "/usr/share/texmf-dist/fonts/type1/public/amsfonts/cm/cmtt12.pfb" 1727349926 24252 1e4e051947e12dfb50fee0b7f4e26e3a "" + "/usr/share/texmf-dist/fonts/type1/public/cm-super/sfrm1200.pfb" 1727349926 136101 f533469f523533d38317ab5729d00c8a "" + "/usr/share/texmf-dist/tex/context/base/mkii/supp-pdf.mkii" 1727349926 71627 94eb9990bed73c364d7f53f960cc8c5b "" + "/usr/share/texmf-dist/tex/generic/atbegshi/atbegshi.sty" 1727349926 24708 5584a51a7101caf7e6bbf1fc27d8f7b1 "" + "/usr/share/texmf-dist/tex/generic/babel-english/english.ldf" 1727349926 7008 9ff5fdcc865b01beca2b0fe4a46231d4 "" + "/usr/share/texmf-dist/tex/generic/babel/babel.sty" 1727349926 146276 10a40dabec03ce18494af0c3a51bcbdc "" + "/usr/share/texmf-dist/tex/generic/babel/locale/en/babel-en.ini" 1727349926 3966 caeee5a9e5771d4446aa1ca9015ba1b2 "" + "/usr/share/texmf-dist/tex/generic/babel/locale/en/babel-english.tex" 1727349926 336 ed676b5e7dfd862bc78d634f6a973f37 "" + "/usr/share/texmf-dist/tex/generic/babel/txtbabel.def" 1727349926 6948 df63e25be1d2bc35bbad5a0141f41348 "" + "/usr/share/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty" 1727349926 40635 c40361e206be584d448876bba8a64a3b "" + "/usr/share/texmf-dist/tex/generic/bitset/bitset.sty" 1727349926 33961 6b5c75130e435b2bfdb9f480a09a39f9 "" + "/usr/share/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty" 1727349926 8371 9d55b8bd010bc717624922fb3477d92e "" + "/usr/share/texmf-dist/tex/generic/iftex/iftex.sty" 1727349926 7237 bdd120a32c8fdb4b433cf9ca2e7cd98a "" + "/usr/share/texmf-dist/tex/generic/iftex/ifvtex.sty" 1727349926 1057 525c2192b5febbd8c1f662c9468335bb "" + "/usr/share/texmf-dist/tex/generic/infwarerr/infwarerr.sty" 1727349926 8356 7bbb2c2373aa810be568c29e333da8ed "" + "/usr/share/texmf-dist/tex/generic/intcalc/intcalc.sty" 1727349926 31769 002a487f55041f8e805cfbf6385ffd97 "" + "/usr/share/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty" 1727349926 5412 d5a2436094cd7be85769db90f29250a6 "" + "/usr/share/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty" 1727349926 17865 1a9bd36b4f98178fa551aca822290953 "" + "/usr/share/texmf-dist/tex/generic/pdfescape/pdfescape.sty" 1727349926 19007 15924f7228aca6c6d184b115f4baa231 "" + "/usr/share/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty" 1727349926 20089 80423eac55aa175305d35b49e04fe23b "" + "/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcore.code.tex" 1727349926 1016 1c2b89187d12a2768764b83b4945667c "" + "/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorearrows.code.tex" 1727349926 43820 1fef971b75380574ab35a0d37fd92608 "" + "/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreexternal.code.tex" 1727349926 19324 f4e4c6403dd0f1605fd20ed22fa79dea "" + "/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcoregraphicstate.code.tex" 1727349926 6038 ccb406740cc3f03bbfb58ad504fe8c27 "" + "/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreimage.code.tex" 1727349926 6911 f6d4cf5a3fef5cc879d668b810e82868 "" + "/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorelayers.code.tex" 1727349926 4883 42daaf41e27c3735286e23e48d2d7af9 "" + "/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreobjects.code.tex" 1727349926 2544 8c06d2a7f0f469616ac9e13db6d2f842 "" + "/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathconstruct.code.tex" 1727349926 44195 5e390c414de027626ca5e2df888fa68d "" + "/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathprocessing.code.tex" 1727349926 17311 2ef6b2e29e2fc6a2fc8d6d652176e257 "" + "/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathusage.code.tex" 1727349926 21302 788a79944eb22192a4929e46963a3067 "" + "/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepatterns.code.tex" 1727349926 9691 3d42d89522f4650c2f3dc616ca2b925e "" + "/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepoints.code.tex" 1727349926 33335 dd1fa4814d4e51f18be97d88bf0da60c "" + "/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorequick.code.tex" 1727349926 2965 4c2b1f4e0826925746439038172e5d6f "" + "/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorerdf.code.tex" 1727349926 5196 2cc249e0ee7e03da5f5f6589257b1e5b "" + "/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorescopes.code.tex" 1727349926 20821 7579108c1e9363e61a0b1584778804aa "" + "/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreshade.code.tex" 1727349926 35249 abd4adf948f960299a4b3d27c5dddf46 "" + "/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransformations.code.tex" 1727349926 22012 81b34a0aa8fa1a6158cc6220b00e4f10 "" + "/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransparency.code.tex" 1727349926 8893 e851de2175338fdf7c17f3e091d94618 "" + "/usr/share/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarycalc.code.tex" 1727349926 15929 463535aa2c4268fead6674a75c0e8266 "" + "/usr/share/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryfit.code.tex" 1727349926 3626 2d87dc681257fa32d07a8b3934b10f88 "" + "/usr/share/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryshapes.arrows.code.tex" 1727349926 410 048d1174dabde96757a5387b8f23d968 "" + "/usr/share/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryshapes.callouts.code.tex" 1727349926 1201 8bd51e254d3ecf0cd2f21edd9ab6f1bb "" + "/usr/share/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryshapes.code.tex" 1727349926 494 8de62576191924285b021f4fc4292e16 "" + "/usr/share/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryshapes.geometric.code.tex" 1727349926 339 be0fe46d92a80e3385dd6a83511a46f2 "" + "/usr/share/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryshapes.misc.code.tex" 1727349926 329 ba6d5440f8c16779c2384e0614158266 "" + "/usr/share/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryshapes.multipart.code.tex" 1727349926 923 c7a223b32ffdeb1c839d97935eee61ff "" + "/usr/share/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryshapes.symbols.code.tex" 1727349926 475 4b4056fe07caa0603fede9a162fe666d "" + "/usr/share/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarytopaths.code.tex" 1727349926 11518 738408f795261b70ce8dd47459171309 "" + "/usr/share/texmf-dist/tex/generic/pgf/frontendlayer/tikz/tikz.code.tex" 1727349926 186782 af500404a9edec4d362912fe762ded92 "" + "/usr/share/texmf-dist/tex/generic/pgf/libraries/pgflibraryfpu.code.tex" 1727349926 85938 8e4ba97c5906e1c0d158aea81fe29af7 "" + "/usr/share/texmf-dist/tex/generic/pgf/libraries/pgflibraryintersections.code.tex" 1727349926 44571 38ac24c171fb8fa1a13adc8ce7eb94c5 "" + "/usr/share/texmf-dist/tex/generic/pgf/libraries/pgflibraryplothandlers.code.tex" 1727349926 32995 ac577023e12c0e4bd8aa420b2e852d1a "" + "/usr/share/texmf-dist/tex/generic/pgf/libraries/shapes/pgflibraryshapes.arrows.code.tex" 1727349926 91587 d9b31a3e308b08833e4528a7b4484b4a "" + "/usr/share/texmf-dist/tex/generic/pgf/libraries/shapes/pgflibraryshapes.callouts.code.tex" 1727349926 33336 427c354e28a4802ffd781da22ae9f383 "" + "/usr/share/texmf-dist/tex/generic/pgf/libraries/shapes/pgflibraryshapes.geometric.code.tex" 1727349926 161011 76ab54df0aa1a9d3b27a94864771d38d "" + "/usr/share/texmf-dist/tex/generic/pgf/libraries/shapes/pgflibraryshapes.misc.code.tex" 1727349926 46249 d1f322c52d26cf506b4988f31902cd5d "" + "/usr/share/texmf-dist/tex/generic/pgf/libraries/shapes/pgflibraryshapes.multipart.code.tex" 1727349926 62281 aff261ef10ba6cbe8e3c872a38c05a61 "" + "/usr/share/texmf-dist/tex/generic/pgf/libraries/shapes/pgflibraryshapes.symbols.code.tex" 1727349926 90521 9d46d4504c2ffed28ff5ef3c43d15f21 "" + "/usr/share/texmf-dist/tex/generic/pgf/math/pgfint.code.tex" 1727349926 3063 8c415c68a0f3394e45cfeca0b65f6ee6 "" + "/usr/share/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex" 1727349926 949 cea70942e7b7eddabfb3186befada2e6 "" + "/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathcalc.code.tex" 1727349926 13270 2e54f2ce7622437bf37e013d399743e3 "" + "/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfloat.code.tex" 1727349926 104717 9b2393fbf004a0ce7fa688dbce423848 "" + "/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.base.code.tex" 1727349926 10165 cec5fa73d49da442e56efc2d605ef154 "" + "/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.basic.code.tex" 1727349926 28178 41c17713108e0795aac6fef3d275fbca "" + "/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.code.tex" 1727349926 9649 85779d3d8d573bfd2cd4137ba8202e60 "" + "/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.comparison.code.tex" 1727349926 3865 ac538ab80c5cf82b345016e474786549 "" + "/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.integerarithmetics.code.tex" 1727349926 3177 27d85c44fbfe09ff3b2cf2879e3ea434 "" + "/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.misc.code.tex" 1727349926 11024 0179538121bc2dba172013a3ef89519f "" + "/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.random.code.tex" 1727349926 7890 0a86dbf4edfd88d022e0d889ec78cc03 "" + "/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.round.code.tex" 1727349926 3379 781797a101f647bab82741a99944a229 "" + "/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.trigonometric.code.tex" 1727349926 92405 f515f31275db273f97b9d8f52e1b0736 "" + "/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathparser.code.tex" 1727349926 37466 97b0a1ba732e306a1a2034f5a73e239f "" + "/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathutil.code.tex" 1727349926 8471 c2883569d03f69e8e1cabfef4999cfd7 "" + "/usr/share/texmf-dist/tex/generic/pgf/modules/pgfmodulematrix.code.tex" 1727349926 21211 1e73ec76bd73964d84197cc3d2685b01 "" + "/usr/share/texmf-dist/tex/generic/pgf/modules/pgfmoduleplot.code.tex" 1727349926 16121 346f9013d34804439f7436ff6786cef7 "" + "/usr/share/texmf-dist/tex/generic/pgf/modules/pgfmoduleshapes.code.tex" 1727349926 44792 271e2e1934f34c759f4dedb1e14a5015 "" + "/usr/share/texmf-dist/tex/generic/pgf/pgf.revision.tex" 1727349926 114 e6d443369d0673933b38834bf99e422d "" + "/usr/share/texmf-dist/tex/generic/pgf/systemlayer/pgf.cfg" 1727349926 926 2963ea0dcf6cc6c0a770b69ec46a477b "" + "/usr/share/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-common-pdf.def" 1727349926 5542 32f75a31ea6c3a7e1148cd6d5e93dbb7 "" + "/usr/share/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-pdftex.def" 1727349926 12612 7774ba67bfd72e593c4436c2de6201e3 "" + "/usr/share/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex" 1727349926 61351 bc5f86e0355834391e736e97a61abced "" + "/usr/share/texmf-dist/tex/generic/pgf/systemlayer/pgfsysprotocol.code.tex" 1727349926 1896 b8e0ca0ac371d74c0ca05583f6313c91 "" + "/usr/share/texmf-dist/tex/generic/pgf/systemlayer/pgfsyssoftpath.code.tex" 1727349926 7778 53c8b5623d80238f6a20aa1df1868e63 "" + "/usr/share/texmf-dist/tex/generic/pgf/utilities/pgffor.code.tex" 1727349926 24033 d8893a1ec4d1bfa101b172754743d340 "" + "/usr/share/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex" 1727349926 39784 414c54e866ebab4b801e2ad81d9b21d8 "" + "/usr/share/texmf-dist/tex/generic/pgf/utilities/pgfkeyslibraryfiltered.code.tex" 1727349926 37433 940bc6d409f1ffd298adfdcaf125dd86 "" + "/usr/share/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex" 1727349926 4385 510565c2f07998c8a0e14f0ec07ff23c "" + "/usr/share/texmf-dist/tex/generic/pgf/utilities/pgfutil-common.tex" 1727349926 29239 22e8c7516012992a49873eff0d868fed "" + "/usr/share/texmf-dist/tex/generic/pgf/utilities/pgfutil-latex.def" 1727349926 6950 8524a062d82b7afdc4a88a57cb377784 "" + "/usr/share/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty" 1727349926 7008 f92eaa0a3872ed622bbf538217cd2ab7 "" + "/usr/share/texmf-dist/tex/latex/atveryend/atveryend.sty" 1727349926 19336 ce7ae9438967282886b3b036cfad1e4d "" + "/usr/share/texmf-dist/tex/latex/auxhook/auxhook.sty" 1727349926 3935 57aa3c3e203a5c2effb4d2bd2efbc323 "" + "/usr/share/texmf-dist/tex/latex/base/article.cls" 1727349926 20144 147463a6a579f4597269ef9565205cfe "" + "/usr/share/texmf-dist/tex/latex/base/atbegshi-ltx.sty" 1727349926 3045 273c666a54e60b9f730964f431a56c1b "" + "/usr/share/texmf-dist/tex/latex/base/atveryend-ltx.sty" 1727349926 2462 6bc53756156dbd71c1ad550d30a3b93f "" + "/usr/share/texmf-dist/tex/latex/base/size12.clo" 1727349926 8449 f07039d8e4e89f21078d9b5137579bfc "" + "/usr/share/texmf-dist/tex/latex/elocalloc/elocalloc.sty" 1727349926 1428 7d469063535b93044f827bfdb1b0a130 "" + "/usr/share/texmf-dist/tex/latex/environ/environ.sty" 1727349926 4378 f429f0da968c278653359293040a8f52 "" + "/usr/share/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty" 1727349926 13886 d1306dcf79a944f6988e688c1785f9ce "" + "/usr/share/texmf-dist/tex/latex/etoolbox/etoolbox.sty" 1727349926 46845 3b58f70c6e861a13d927bff09d35ecbc "" + "/usr/share/texmf-dist/tex/latex/forest/forest.sty" 1727349926 350382 5acb55040bcf8080692df2e32715e5ea "" + "/usr/share/texmf-dist/tex/latex/geometry/geometry.sty" 1727349926 41601 9cf6c5257b1bc7af01a58859749dd37a "" + "/usr/share/texmf-dist/tex/latex/graphics-cfg/color.cfg" 1727349926 1213 620bba36b25224fa9b7e1ccb4ecb76fd "" + "/usr/share/texmf-dist/tex/latex/graphics-cfg/graphics.cfg" 1727349926 1224 978390e9c2234eab29404bc21b268d1e "" + "/usr/share/texmf-dist/tex/latex/graphics-def/pdftex.def" 1727349926 19448 1e988b341dda20961a6b931bcde55519 "" + "/usr/share/texmf-dist/tex/latex/graphics/graphics.sty" 1727349926 18387 8f900a490197ebaf93c02ae9476d4b09 "" + "/usr/share/texmf-dist/tex/latex/graphics/graphicx.sty" 1727349926 8010 a8d949cbdbc5c983593827c9eec252e1 "" + "/usr/share/texmf-dist/tex/latex/graphics/keyval.sty" 1727349926 2671 7e67d78d9b88c845599a85b2d41f2e39 "" + "/usr/share/texmf-dist/tex/latex/graphics/mathcolor.ltx" 1727349926 2885 9c645d672ae17285bba324998918efd8 "" + "/usr/share/texmf-dist/tex/latex/graphics/trig.sty" 1727349926 4023 293ea1c16429fc0c4cf605f4da1791a9 "" + "/usr/share/texmf-dist/tex/latex/hycolor/hycolor.sty" 1727349926 17914 4c28a13fc3d975e6e81c9bea1d697276 "" + "/usr/share/texmf-dist/tex/latex/hyperref/hpdftex.def" 1727349926 48154 e46bf8adeb936500541441171d61726d "" + "/usr/share/texmf-dist/tex/latex/hyperref/hyperref.sty" 1727349926 220920 fd3cbb5f1a2bc9b8f451b8b7d8171264 "" + "/usr/share/texmf-dist/tex/latex/hyperref/nameref.sty" 1727349926 11026 182c63f139a71afd30a28e5f1ed2cd1c "" + "/usr/share/texmf-dist/tex/latex/hyperref/pd1enc.def" 1727349926 14249 e67cb186717b7ab18d14a4875e7e98b5 "" + "/usr/share/texmf-dist/tex/latex/hyperref/puenc.def" 1727349926 117112 05831178ece2cad4d9629dcf65099b11 "" + "/usr/share/texmf-dist/tex/latex/inlinedef/inlinedef.sty" 1727349926 10102 e5ccd67aecac6cb4bf5de2b491ef79b5 "" + "/usr/share/texmf-dist/tex/latex/kvoptions/kvoptions.sty" 1727349926 22555 6d8e155cfef6d82c3d5c742fea7c992e "" + "/usr/share/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty" 1727349926 13815 760b0c02f691ea230f5359c4e1de23a7 "" + "/usr/share/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def" 1727349926 30006 3d512c0edd558928ddea1690180ef77e "" + "/usr/share/texmf-dist/tex/latex/l3kernel/expl3.sty" 1727349926 6565 10e89ed128ccd59431746bbdd82129fc "" + "/usr/share/texmf-dist/tex/latex/l3packages/xparse/xparse.sty" 1727349926 9327 11bedad2ac38f92e405a38ed18489a03 "" + "/usr/share/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg" 1727349926 678 4792914a8f45be57bb98413425e4c7af "" + "/usr/share/texmf-dist/tex/latex/listings/listings.cfg" 1727349926 1830 20af84c556326f7c12b9202ebe363f56 "" + "/usr/share/texmf-dist/tex/latex/listings/listings.sty" 1727349926 81322 d02238bdeb305f2c9f9d0229f99371d0 "" + "/usr/share/texmf-dist/tex/latex/listings/lstlang1.sty" 1727349926 205167 fca232873050cd2da4f9c0c32402c38a "" + "/usr/share/texmf-dist/tex/latex/listings/lstmisc.sty" 1727349926 77022 5c8c440739265e7ba15b8379ece6ecd7 "" + "/usr/share/texmf-dist/tex/latex/listings/lstpatch.sty" 1727349926 329 f19f5da7234b51d16764e23d20999c73 "" + "/usr/share/texmf-dist/tex/latex/pgf/basiclayer/pgf.sty" 1727349926 1090 bae35ef70b3168089ef166db3e66f5b2 "" + "/usr/share/texmf-dist/tex/latex/pgf/basiclayer/pgfcore.sty" 1727349926 373 00b204b1d7d095b892ad31a7494b0373 "" + "/usr/share/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-0-65.sty" 1727349926 21013 f4ff83d25bb56552493b030f27c075ae "" + "/usr/share/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-1-18.sty" 1727349926 989 c49c8ae06d96f8b15869da7428047b1e "" + "/usr/share/texmf-dist/tex/latex/pgf/frontendlayer/tikz.sty" 1727349926 339 c2e180022e3afdb99c7d0ea5ce469b7d "" + "/usr/share/texmf-dist/tex/latex/pgf/math/pgfmath.sty" 1727349926 306 c56a323ca5bf9242f54474ced10fca71 "" + "/usr/share/texmf-dist/tex/latex/pgf/systemlayer/pgfsys.sty" 1727349926 443 8c872229db56122037e86bcda49e14f3 "" + "/usr/share/texmf-dist/tex/latex/pgf/utilities/pgffor.sty" 1727349926 348 ee405e64380c11319f0e249fed57e6c5 "" + "/usr/share/texmf-dist/tex/latex/pgf/utilities/pgfkeys.sty" 1727349926 274 5ae372b7df79135d240456a1c6f2cf9a "" + "/usr/share/texmf-dist/tex/latex/pgf/utilities/pgfrcs.sty" 1727349926 325 f9f16d12354225b7dd52a3321f085955 "" + "/usr/share/texmf-dist/tex/latex/pgfopts/pgfopts.sty" 1727349926 5540 d5c60cf09c59da351aa4023ed084e4eb "" + "/usr/share/texmf-dist/tex/latex/refcount/refcount.sty" 1727349926 9878 9e94e8fa600d95f9c7731bb21dfb67a4 "" + "/usr/share/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty" 1727349926 9714 ba3194bd52c8499b3f1e3eb91d409670 "" + "/usr/share/texmf-dist/tex/latex/tikz-qtree/pgfsubpic.sty" 1727349926 54 f9439ec673a174422959417bbf935693 "" + "/usr/share/texmf-dist/tex/latex/tikz-qtree/pgfsubpic.tex" 1727349926 8570 d1bab08986c0118f4c006d2f8c250422 "" + "/usr/share/texmf-dist/tex/latex/tikz-qtree/pgftree.sty" 1727349926 103 1ec4da228521932da66ce8de6a762d94 "" + "/usr/share/texmf-dist/tex/latex/tikz-qtree/pgftree.tex" 1727349926 7300 d92acc9c8a60dbc36f92a0414bc55881 "" + "/usr/share/texmf-dist/tex/latex/tikz-qtree/tikz-qtree.sty" 1727349926 80 0f0f922a334da96eeeca4db3f8b5834a "" + "/usr/share/texmf-dist/tex/latex/tikz-qtree/tikz-qtree.tex" 1727349926 7407 bee44709234c7b6ab03b4bbe0f0eb1cf "" + "/usr/share/texmf-dist/tex/latex/titlesec/titlesec.sty" 1727349926 48766 0b93839be28e9744a24c45075c75b2e2 "" + "/usr/share/texmf-dist/tex/latex/titling/titling.sty" 1727349926 7358 95ac619994bd30d405a74f3eca431c84 "" + "/usr/share/texmf-dist/tex/latex/trimspaces/trimspaces.sty" 1727349926 1380 971a51b00a14503ddf754cab24c3f209 "" + "/usr/share/texmf-dist/tex/latex/url/url.sty" 1727349926 12796 8edb7d69a20b857904dd0ea757c14ec9 "" + "/usr/share/texmf-dist/tex/latex/xcolor/xcolor.sty" 1727349926 55487 80a65caedd3722f4c20a14a69e785d8f "" + "/usr/share/texmf-dist/web2c/texmf.cnf" 1727349926 41588 b43d3e860a4f94167ee1e725ff526a72 "" + "/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map" 1727772120.4956 5312047 b07fcd2a9090df96fc745b92a3db793b "" + "/var/lib/texmf/web2c/pdftex/pdflatex.fmt" 1727771987 7112995 7933768d5ebcb328850d23523e531d79 "" + "writeup.aux" 1728905492.33432 4432 710fbc040802dbc9eb40406952fd6ed2 "pdflatex" + "writeup.out" 1728905492.33765 4997 e70a9c8f057c1547035bac5d30a3014a "pdflatex" + "writeup.tex" 1728905489.59434 20681 18e84f17b265407f364fdfa5882ac984 "" + "writeup.toc" 1728905492.33765 2529 a2fe1657a58b702f5bfb72c069988614 "pdflatex" + (generated) + "writeup.aux" + "writeup.log" + "writeup.out" + "writeup.pdf" + "writeup.toc" + (rewritten before read) diff --git a/comp/lucas-standen-NEA/writeup2/writeup.fls b/comp/lucas-standen-NEA/writeup2/writeup.fls new file mode 100644 index 0000000..a358e98 --- /dev/null +++ b/comp/lucas-standen-NEA/writeup2/writeup.fls @@ -0,0 +1,365 @@ +PWD /home/thing1/school/comp/lucas-standen-NEA/writeup2 +INPUT /usr/share/texmf-dist/web2c/texmf.cnf +INPUT /var/lib/texmf/web2c/pdftex/pdflatex.fmt +INPUT writeup.tex +OUTPUT writeup.log +INPUT /usr/share/texmf-dist/tex/latex/base/article.cls +INPUT /usr/share/texmf-dist/tex/latex/base/article.cls +INPUT /usr/share/texmf-dist/tex/latex/base/size12.clo +INPUT /usr/share/texmf-dist/tex/latex/base/size12.clo +INPUT /usr/share/texmf-dist/tex/latex/base/size12.clo +INPUT /usr/share/texmf-dist/fonts/map/fontname/texfonts.map +INPUT /usr/share/texmf-dist/fonts/tfm/public/cm/cmr12.tfm +INPUT /usr/share/texmf-dist/tex/latex/geometry/geometry.sty +INPUT /usr/share/texmf-dist/tex/latex/geometry/geometry.sty +INPUT /usr/share/texmf-dist/tex/latex/graphics/keyval.sty +INPUT /usr/share/texmf-dist/tex/latex/graphics/keyval.sty +INPUT /usr/share/texmf-dist/tex/generic/iftex/ifvtex.sty +INPUT /usr/share/texmf-dist/tex/generic/iftex/ifvtex.sty +INPUT /usr/share/texmf-dist/tex/generic/iftex/iftex.sty +INPUT /usr/share/texmf-dist/tex/generic/iftex/iftex.sty +INPUT /usr/share/texmf-dist/tex/latex/titling/titling.sty +INPUT /usr/share/texmf-dist/tex/latex/titling/titling.sty +INPUT /usr/share/texmf-dist/tex/latex/titlesec/titlesec.sty +INPUT /usr/share/texmf-dist/tex/latex/titlesec/titlesec.sty +INPUT /usr/share/texmf-dist/tex/generic/babel/babel.sty +INPUT /usr/share/texmf-dist/tex/generic/babel/babel.sty +INPUT /usr/share/texmf-dist/tex/generic/babel/txtbabel.def +INPUT /usr/share/texmf-dist/tex/generic/babel-english/english.ldf +INPUT /usr/share/texmf-dist/tex/generic/babel-english/english.ldf +INPUT /usr/share/texmf-dist/tex/generic/babel-english/english.ldf +INPUT /usr/share/texmf-dist/tex/generic/babel/locale/en/babel-english.tex +INPUT /usr/share/texmf-dist/tex/generic/babel/locale/en/babel-english.tex +INPUT /usr/share/texmf-dist/tex/generic/babel/locale/en/babel-english.tex +INPUT /usr/share/texmf-dist/tex/generic/babel/locale/en/babel-en.ini +INPUT /usr/share/texmf-dist/tex/latex/hyperref/hyperref.sty +INPUT /usr/share/texmf-dist/tex/latex/hyperref/hyperref.sty +INPUT /usr/share/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty +INPUT /usr/share/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty +INPUT /usr/share/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty +INPUT /usr/share/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty +INPUT /usr/share/texmf-dist/tex/generic/pdfescape/pdfescape.sty +INPUT /usr/share/texmf-dist/tex/generic/pdfescape/pdfescape.sty +INPUT /usr/share/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty +INPUT /usr/share/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty +INPUT /usr/share/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty +INPUT /usr/share/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty +INPUT /usr/share/texmf-dist/tex/generic/infwarerr/infwarerr.sty +INPUT /usr/share/texmf-dist/tex/generic/infwarerr/infwarerr.sty +INPUT /usr/share/texmf-dist/tex/latex/hycolor/hycolor.sty +INPUT /usr/share/texmf-dist/tex/latex/hycolor/hycolor.sty +INPUT /usr/share/texmf-dist/tex/latex/auxhook/auxhook.sty +INPUT /usr/share/texmf-dist/tex/latex/auxhook/auxhook.sty +INPUT /usr/share/texmf-dist/tex/latex/hyperref/nameref.sty +INPUT /usr/share/texmf-dist/tex/latex/hyperref/nameref.sty +INPUT /usr/share/texmf-dist/tex/latex/refcount/refcount.sty +INPUT /usr/share/texmf-dist/tex/latex/refcount/refcount.sty +INPUT /usr/share/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty +INPUT /usr/share/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty +INPUT /usr/share/texmf-dist/tex/latex/kvoptions/kvoptions.sty +INPUT /usr/share/texmf-dist/tex/latex/kvoptions/kvoptions.sty +INPUT /usr/share/texmf-dist/tex/latex/etoolbox/etoolbox.sty +INPUT /usr/share/texmf-dist/tex/latex/etoolbox/etoolbox.sty +INPUT /usr/share/texmf-dist/tex/latex/hyperref/pd1enc.def +INPUT /usr/share/texmf-dist/tex/latex/hyperref/pd1enc.def +INPUT /usr/share/texmf-dist/tex/latex/hyperref/pd1enc.def +INPUT /usr/share/texmf-dist/tex/generic/intcalc/intcalc.sty +INPUT /usr/share/texmf-dist/tex/generic/intcalc/intcalc.sty +INPUT /usr/share/texmf-dist/tex/latex/hyperref/puenc.def +INPUT /usr/share/texmf-dist/tex/latex/hyperref/puenc.def +INPUT /usr/share/texmf-dist/tex/latex/hyperref/puenc.def +INPUT /usr/share/texmf-dist/tex/latex/url/url.sty +INPUT /usr/share/texmf-dist/tex/latex/url/url.sty +INPUT /usr/share/texmf-dist/tex/generic/bitset/bitset.sty +INPUT /usr/share/texmf-dist/tex/generic/bitset/bitset.sty +INPUT /usr/share/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty +INPUT /usr/share/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty +INPUT /usr/share/texmf-dist/tex/generic/atbegshi/atbegshi.sty +INPUT /usr/share/texmf-dist/tex/latex/base/atbegshi-ltx.sty +INPUT /usr/share/texmf-dist/tex/latex/base/atbegshi-ltx.sty +INPUT /usr/share/texmf-dist/tex/latex/hyperref/hpdftex.def +INPUT /usr/share/texmf-dist/tex/latex/hyperref/hpdftex.def +INPUT /usr/share/texmf-dist/tex/latex/hyperref/hpdftex.def +INPUT /usr/share/texmf-dist/tex/latex/atveryend/atveryend.sty +INPUT /usr/share/texmf-dist/tex/latex/base/atveryend-ltx.sty +INPUT /usr/share/texmf-dist/tex/latex/base/atveryend-ltx.sty +INPUT /usr/share/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty +INPUT /usr/share/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty +INPUT /usr/share/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty +INPUT /usr/share/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty +INPUT /usr/share/texmf-dist/tex/latex/listings/listings.sty +INPUT /usr/share/texmf-dist/tex/latex/listings/listings.sty +INPUT /usr/share/texmf-dist/tex/latex/listings/lstpatch.sty +INPUT /usr/share/texmf-dist/tex/latex/listings/lstpatch.sty +INPUT /usr/share/texmf-dist/tex/latex/listings/lstpatch.sty +INPUT /usr/share/texmf-dist/tex/latex/listings/lstmisc.sty +INPUT /usr/share/texmf-dist/tex/latex/listings/lstmisc.sty +INPUT /usr/share/texmf-dist/tex/latex/listings/lstmisc.sty +INPUT /usr/share/texmf-dist/tex/latex/listings/listings.cfg +INPUT /usr/share/texmf-dist/tex/latex/listings/listings.cfg +INPUT /usr/share/texmf-dist/tex/latex/listings/listings.cfg +INPUT /usr/share/texmf-dist/tex/latex/xcolor/xcolor.sty +INPUT /usr/share/texmf-dist/tex/latex/xcolor/xcolor.sty +INPUT /usr/share/texmf-dist/tex/latex/graphics-cfg/color.cfg +INPUT /usr/share/texmf-dist/tex/latex/graphics-cfg/color.cfg +INPUT /usr/share/texmf-dist/tex/latex/graphics-cfg/color.cfg +INPUT /usr/share/texmf-dist/tex/latex/graphics-def/pdftex.def +INPUT /usr/share/texmf-dist/tex/latex/graphics-def/pdftex.def +INPUT /usr/share/texmf-dist/tex/latex/graphics-def/pdftex.def +INPUT /usr/share/texmf-dist/tex/latex/graphics/mathcolor.ltx +INPUT /usr/share/texmf-dist/tex/latex/graphics/mathcolor.ltx +INPUT /usr/share/texmf-dist/tex/latex/graphics/mathcolor.ltx +INPUT /usr/share/texmf-dist/tex/latex/graphics/graphicx.sty +INPUT /usr/share/texmf-dist/tex/latex/graphics/graphicx.sty +INPUT /usr/share/texmf-dist/tex/latex/graphics/graphics.sty +INPUT /usr/share/texmf-dist/tex/latex/graphics/graphics.sty +INPUT /usr/share/texmf-dist/tex/latex/graphics/trig.sty +INPUT /usr/share/texmf-dist/tex/latex/graphics/trig.sty +INPUT /usr/share/texmf-dist/tex/latex/graphics-cfg/graphics.cfg +INPUT /usr/share/texmf-dist/tex/latex/graphics-cfg/graphics.cfg +INPUT /usr/share/texmf-dist/tex/latex/graphics-cfg/graphics.cfg +INPUT /usr/share/texmf-dist/tex/latex/forest/forest.sty +INPUT /usr/share/texmf-dist/tex/latex/forest/forest.sty +INPUT /usr/share/texmf-dist/tex/latex/pgf/frontendlayer/tikz.sty +INPUT /usr/share/texmf-dist/tex/latex/pgf/frontendlayer/tikz.sty +INPUT /usr/share/texmf-dist/tex/latex/pgf/basiclayer/pgf.sty +INPUT /usr/share/texmf-dist/tex/latex/pgf/basiclayer/pgf.sty +INPUT /usr/share/texmf-dist/tex/latex/pgf/utilities/pgfrcs.sty +INPUT /usr/share/texmf-dist/tex/latex/pgf/utilities/pgfrcs.sty +INPUT /usr/share/texmf-dist/tex/generic/pgf/utilities/pgfutil-common.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/utilities/pgfutil-latex.def +INPUT /usr/share/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/pgf.revision.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/pgf.revision.tex +INPUT /usr/share/texmf-dist/tex/latex/pgf/basiclayer/pgfcore.sty +INPUT /usr/share/texmf-dist/tex/latex/pgf/basiclayer/pgfcore.sty +INPUT /usr/share/texmf-dist/tex/latex/pgf/systemlayer/pgfsys.sty +INPUT /usr/share/texmf-dist/tex/latex/pgf/systemlayer/pgfsys.sty +INPUT /usr/share/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/utilities/pgfkeyslibraryfiltered.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/systemlayer/pgf.cfg +INPUT /usr/share/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-pdftex.def +INPUT /usr/share/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-pdftex.def +INPUT /usr/share/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-common-pdf.def +INPUT /usr/share/texmf-dist/tex/generic/pgf/systemlayer/pgfsyssoftpath.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/systemlayer/pgfsyssoftpath.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/systemlayer/pgfsyssoftpath.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/systemlayer/pgfsysprotocol.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/systemlayer/pgfsysprotocol.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/systemlayer/pgfsysprotocol.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcore.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcore.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcore.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/math/pgfmathutil.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/math/pgfmathparser.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.basic.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.trigonometric.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.random.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.comparison.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.base.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.round.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.misc.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.integerarithmetics.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/math/pgfmathcalc.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfloat.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/math/pgfint.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepoints.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathconstruct.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathusage.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorescopes.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcoregraphicstate.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransformations.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorequick.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreobjects.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathprocessing.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorearrows.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreshade.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreimage.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreexternal.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorelayers.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransparency.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepatterns.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorerdf.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/modules/pgfmoduleshapes.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/modules/pgfmoduleplot.code.tex +INPUT /usr/share/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-0-65.sty +INPUT /usr/share/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-0-65.sty +INPUT /usr/share/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-1-18.sty +INPUT /usr/share/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-1-18.sty +INPUT /usr/share/texmf-dist/tex/latex/pgf/utilities/pgffor.sty +INPUT /usr/share/texmf-dist/tex/latex/pgf/utilities/pgffor.sty +INPUT /usr/share/texmf-dist/tex/latex/pgf/utilities/pgfkeys.sty +INPUT /usr/share/texmf-dist/tex/latex/pgf/utilities/pgfkeys.sty +INPUT /usr/share/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex +INPUT /usr/share/texmf-dist/tex/latex/pgf/math/pgfmath.sty +INPUT /usr/share/texmf-dist/tex/latex/pgf/math/pgfmath.sty +INPUT /usr/share/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/utilities/pgffor.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/utilities/pgffor.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/utilities/pgffor.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/frontendlayer/tikz/tikz.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/frontendlayer/tikz/tikz.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/frontendlayer/tikz/tikz.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/libraries/pgflibraryplothandlers.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/libraries/pgflibraryplothandlers.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/modules/pgfmodulematrix.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarytopaths.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarytopaths.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryshapes.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryshapes.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryshapes.geometric.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryshapes.geometric.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/libraries/shapes/pgflibraryshapes.geometric.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/libraries/shapes/pgflibraryshapes.geometric.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryshapes.misc.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryshapes.misc.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/libraries/shapes/pgflibraryshapes.misc.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/libraries/shapes/pgflibraryshapes.misc.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryshapes.symbols.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryshapes.symbols.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/libraries/shapes/pgflibraryshapes.symbols.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/libraries/shapes/pgflibraryshapes.symbols.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryshapes.arrows.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryshapes.arrows.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/libraries/shapes/pgflibraryshapes.arrows.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/libraries/shapes/pgflibraryshapes.arrows.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryshapes.callouts.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryshapes.callouts.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/libraries/shapes/pgflibraryshapes.callouts.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/libraries/shapes/pgflibraryshapes.callouts.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryshapes.multipart.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryshapes.multipart.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/libraries/shapes/pgflibraryshapes.multipart.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/libraries/shapes/pgflibraryshapes.multipart.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryfit.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryfit.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarycalc.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarycalc.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/libraries/pgflibraryintersections.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/libraries/pgflibraryintersections.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/libraries/pgflibraryfpu.code.tex +INPUT /usr/share/texmf-dist/tex/generic/pgf/libraries/pgflibraryfpu.code.tex +INPUT /usr/share/texmf-dist/tex/latex/pgfopts/pgfopts.sty +INPUT /usr/share/texmf-dist/tex/latex/pgfopts/pgfopts.sty +INPUT /usr/share/texmf-dist/tex/latex/elocalloc/elocalloc.sty +INPUT /usr/share/texmf-dist/tex/latex/elocalloc/elocalloc.sty +INPUT /usr/share/texmf-dist/tex/latex/environ/environ.sty +INPUT /usr/share/texmf-dist/tex/latex/environ/environ.sty +INPUT /usr/share/texmf-dist/tex/latex/trimspaces/trimspaces.sty +INPUT /usr/share/texmf-dist/tex/latex/trimspaces/trimspaces.sty +INPUT /usr/share/texmf-dist/tex/latex/l3packages/xparse/xparse.sty +INPUT /usr/share/texmf-dist/tex/latex/l3packages/xparse/xparse.sty +INPUT /usr/share/texmf-dist/tex/latex/l3kernel/expl3.sty +INPUT /usr/share/texmf-dist/tex/latex/l3kernel/expl3.sty +INPUT /usr/share/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def +INPUT /usr/share/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def +INPUT /usr/share/texmf-dist/tex/latex/inlinedef/inlinedef.sty +INPUT /usr/share/texmf-dist/tex/latex/inlinedef/inlinedef.sty +INPUT /usr/share/texmf-dist/tex/latex/tikz-qtree/tikz-qtree.sty +INPUT /usr/share/texmf-dist/tex/latex/tikz-qtree/tikz-qtree.sty +INPUT /usr/share/texmf-dist/tex/latex/tikz-qtree/pgftree.sty +INPUT /usr/share/texmf-dist/tex/latex/tikz-qtree/pgftree.sty +INPUT /usr/share/texmf-dist/tex/latex/tikz-qtree/pgfsubpic.sty +INPUT /usr/share/texmf-dist/tex/latex/tikz-qtree/pgfsubpic.sty +INPUT /usr/share/texmf-dist/tex/latex/tikz-qtree/pgfsubpic.tex +INPUT /usr/share/texmf-dist/tex/latex/tikz-qtree/pgfsubpic.tex +INPUT /usr/share/texmf-dist/tex/latex/tikz-qtree/pgfsubpic.tex +INPUT /usr/share/texmf-dist/tex/latex/tikz-qtree/pgftree.tex +INPUT /usr/share/texmf-dist/tex/latex/tikz-qtree/pgftree.tex +INPUT /usr/share/texmf-dist/tex/latex/tikz-qtree/pgftree.tex +INPUT /usr/share/texmf-dist/tex/latex/tikz-qtree/tikz-qtree.tex +INPUT /usr/share/texmf-dist/tex/latex/tikz-qtree/tikz-qtree.tex +INPUT /usr/share/texmf-dist/tex/latex/tikz-qtree/tikz-qtree.tex +INPUT ./writeup.aux +INPUT ./writeup.aux +INPUT writeup.aux +OUTPUT writeup.aux +INPUT ./writeup.out +INPUT ./writeup.out +INPUT writeup.out +INPUT writeup.out +OUTPUT writeup.pdf +INPUT ./writeup.out +INPUT ./writeup.out +OUTPUT writeup.out +INPUT /usr/share/texmf-dist/tex/context/base/mkii/supp-pdf.mkii +INPUT /usr/share/texmf-dist/tex/context/base/mkii/supp-pdf.mkii +INPUT /usr/share/texmf-dist/tex/context/base/mkii/supp-pdf.mkii +INPUT /usr/share/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty +INPUT /usr/share/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty +INPUT /usr/share/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg +INPUT /usr/share/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg +INPUT /usr/share/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg +INPUT /usr/share/texmf-dist/fonts/tfm/public/cm/cmr17.tfm +INPUT /usr/share/texmf-dist/fonts/tfm/public/cm/cmr12.tfm +INPUT /usr/share/texmf-dist/fonts/tfm/public/cm/cmmi12.tfm +INPUT /usr/share/texmf-dist/fonts/tfm/public/cm/cmsy10.tfm +INPUT /var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map +INPUT /usr/share/texmf-dist/fonts/tfm/public/cm/cmr17.tfm +INPUT ./writeup.toc +INPUT ./writeup.toc +INPUT writeup.toc +INPUT /usr/share/texmf-dist/fonts/tfm/public/cm/cmbx12.tfm +INPUT /usr/share/texmf-dist/fonts/tfm/public/cm/cmr8.tfm +INPUT /usr/share/texmf-dist/fonts/tfm/public/cm/cmr6.tfm +INPUT /usr/share/texmf-dist/fonts/tfm/public/cm/cmmi12.tfm +INPUT /usr/share/texmf-dist/fonts/tfm/public/cm/cmmi8.tfm +INPUT /usr/share/texmf-dist/fonts/tfm/public/cm/cmmi6.tfm +INPUT /usr/share/texmf-dist/fonts/tfm/public/cm/cmsy10.tfm +INPUT /usr/share/texmf-dist/fonts/tfm/public/cm/cmsy8.tfm +INPUT /usr/share/texmf-dist/fonts/tfm/public/cm/cmsy6.tfm +OUTPUT writeup.toc +INPUT /usr/share/texmf-dist/fonts/tfm/public/cm/cmtt12.tfm +INPUT /usr/share/texmf-dist/fonts/tfm/public/cm/cmbx12.tfm +INPUT /usr/share/texmf-dist/fonts/tfm/public/cm/cmbxti10.tfm +INPUT /usr/share/texmf-dist/fonts/tfm/jknappen/ec/tcrm1200.tfm +INPUT /usr/share/texmf-dist/tex/latex/listings/lstlang1.sty +INPUT /usr/share/texmf-dist/tex/latex/listings/lstlang1.sty +INPUT /usr/share/texmf-dist/tex/latex/listings/lstlang1.sty +INPUT /usr/share/texmf-dist/tex/latex/listings/lstlang1.sty +INPUT /usr/share/texmf-dist/tex/latex/listings/lstlang1.sty +INPUT /usr/share/texmf-dist/tex/latex/listings/lstlang1.sty +INPUT /usr/share/texmf-dist/tex/latex/listings/lstmisc.sty +INPUT /usr/share/texmf-dist/tex/latex/listings/lstmisc.sty +INPUT /usr/share/texmf-dist/tex/latex/listings/lstmisc.sty +INPUT /usr/share/texmf-dist/fonts/tfm/public/cm/cmtt10.tfm +INPUT /usr/share/texmf-dist/fonts/enc/dvips/cm-super/cm-super-ts1.enc +INPUT /usr/share/texmf-dist/fonts/tfm/public/cm/cmr17.tfm +INPUT /usr/share/texmf-dist/fonts/tfm/public/cm/cmmi12.tfm +INPUT /usr/share/texmf-dist/fonts/tfm/public/cm/cmsy10.tfm +INPUT ../code/proto/AST/ast.c +INPUT ../code/proto/AST/ast.c +INPUT ../code/proto/AST/ast.c +INPUT /usr/share/texmf-dist/fonts/tfm/public/cm/cmti12.tfm +INPUT ../code/proto/AST/astg.c +INPUT ../code/proto/AST/astg.c +INPUT ../code/proto/AST/astg.c +INPUT ../code/proto/AST/astg.h +INPUT ../code/proto/AST/astg.h +INPUT ../code/proto/AST/astg.h +INPUT /usr/share/texmf-dist/fonts/tfm/public/cm/cmr10.tfm +INPUT writeup.aux +INPUT ./writeup.out +INPUT ./writeup.out +INPUT /usr/share/texmf-dist/fonts/type1/public/amsfonts/cm/cmbx12.pfb +INPUT /usr/share/texmf-dist/fonts/type1/public/amsfonts/cm/cmbxti10.pfb +INPUT /usr/share/texmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb +INPUT /usr/share/texmf-dist/fonts/type1/public/amsfonts/cm/cmr12.pfb +INPUT /usr/share/texmf-dist/fonts/type1/public/amsfonts/cm/cmr17.pfb +INPUT /usr/share/texmf-dist/fonts/type1/public/amsfonts/cm/cmr6.pfb +INPUT /usr/share/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy10.pfb +INPUT /usr/share/texmf-dist/fonts/type1/public/amsfonts/cm/cmti12.pfb +INPUT /usr/share/texmf-dist/fonts/type1/public/amsfonts/cm/cmtt10.pfb +INPUT /usr/share/texmf-dist/fonts/type1/public/amsfonts/cm/cmtt12.pfb +INPUT /usr/share/texmf-dist/fonts/type1/public/cm-super/sfrm1200.pfb diff --git a/comp/lucas-standen-NEA/writeup2/writeup.log b/comp/lucas-standen-NEA/writeup2/writeup.log new file mode 100644 index 0000000..c519293 --- /dev/null +++ b/comp/lucas-standen-NEA/writeup2/writeup.log @@ -0,0 +1,809 @@ +This is pdfTeX, Version 3.141592653-2.6-1.40.26 (TeX Live 2024/Arch Linux) (preloaded format=pdflatex 2024.10.1) 14 OCT 2024 12:31 +entering extended mode + restricted \write18 enabled. + file:line:error style messages enabled. + %&-line parsing enabled. +**writeup.tex +(./writeup.tex +LaTeX2e <2023-11-01> patch level 1 +L3 programming layer <2024-02-20> +(/usr/share/texmf-dist/tex/latex/base/article.cls +Document Class: article 2023/05/17 v1.4n Standard LaTeX document class +(/usr/share/texmf-dist/tex/latex/base/size12.clo +File: size12.clo 2023/05/17 v1.4n Standard LaTeX file (size option) +) +\c@part=\count188 +\c@section=\count189 +\c@subsection=\count190 +\c@subsubsection=\count191 +\c@paragraph=\count192 +\c@subparagraph=\count193 +\c@figure=\count194 +\c@table=\count195 +\abovecaptionskip=\skip48 +\belowcaptionskip=\skip49 +\bibindent=\dimen140 +) (/usr/share/texmf-dist/tex/latex/geometry/geometry.sty +Package: geometry 2020/01/02 v5.9 Page Geometry + (/usr/share/texmf-dist/tex/latex/graphics/keyval.sty +Package: keyval 2022/05/29 v1.15 key=value parser (DPC) +\KV@toks@=\toks17 +) (/usr/share/texmf-dist/tex/generic/iftex/ifvtex.sty +Package: ifvtex 2019/10/25 v1.7 ifvtex legacy package. Use iftex instead. + (/usr/share/texmf-dist/tex/generic/iftex/iftex.sty +Package: iftex 2022/02/03 v1.0f TeX engine tests +)) +\Gm@cnth=\count196 +\Gm@cntv=\count197 +\c@Gm@tempcnt=\count198 +\Gm@bindingoffset=\dimen141 +\Gm@wd@mp=\dimen142 +\Gm@odd@mp=\dimen143 +\Gm@even@mp=\dimen144 +\Gm@layoutwidth=\dimen145 +\Gm@layoutheight=\dimen146 +\Gm@layouthoffset=\dimen147 +\Gm@layoutvoffset=\dimen148 +\Gm@dimlist=\toks18 +) (/usr/share/texmf-dist/tex/latex/titling/titling.sty +Package: titling 2009/09/04 v2.1d maketitle typesetting +\thanksmarkwidth=\skip50 +\thanksmargin=\skip51 +\droptitle=\skip52 +) (/usr/share/texmf-dist/tex/latex/titlesec/titlesec.sty +Package: titlesec 2023/10/27 v2.16 Sectioning titles +\ttl@box=\box51 +\beforetitleunit=\skip53 +\aftertitleunit=\skip54 +\ttl@plus=\dimen149 +\ttl@minus=\dimen150 +\ttl@toksa=\toks19 +\titlewidth=\dimen151 +\titlewidthlast=\dimen152 +\titlewidthfirst=\dimen153 +) (/usr/share/texmf-dist/tex/generic/babel/babel.sty +Package: babel 2024/02/07 v24.2 The Babel package +\babel@savecnt=\count199 +\U@D=\dimen154 +\l@unhyphenated=\language5 + (/usr/share/texmf-dist/tex/generic/babel/txtbabel.def) +\bbl@readstream=\read2 +\bbl@dirlevel=\count266 + (/usr/share/texmf-dist/tex/generic/babel-english/english.ldf +Language: english 2017/06/06 v3.3r English support from the babel system +Package babel Info: Hyphen rules for 'british' set to \l@english +(babel) (\language0). Reported on input line 82. +Package babel Info: Hyphen rules for 'UKenglish' set to \l@english +(babel) (\language0). Reported on input line 83. +Package babel Info: Hyphen rules for 'canadian' set to \l@english +(babel) (\language0). Reported on input line 102. +Package babel Info: Hyphen rules for 'australian' set to \l@english +(babel) (\language0). Reported on input line 105. +Package babel Info: Hyphen rules for 'newzealand' set to \l@english +(babel) (\language0). Reported on input line 108. +)) (/usr/share/texmf-dist/tex/generic/babel/locale/en/babel-english.tex +Package babel Info: Importing font and identification data for english +(babel) from babel-en.ini. Reported on input line 11. +) (/usr/share/texmf-dist/tex/latex/hyperref/hyperref.sty +Package: hyperref 2024-01-20 v7.01h Hypertext links for LaTeX + (/usr/share/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty +Package: kvsetkeys 2022-10-05 v1.19 Key value parser (HO) +) (/usr/share/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty +Package: kvdefinekeys 2019-12-19 v1.6 Define keys (HO) +) (/usr/share/texmf-dist/tex/generic/pdfescape/pdfescape.sty +Package: pdfescape 2019/12/09 v1.15 Implements pdfTeX's escape features (HO) + (/usr/share/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty +Package: ltxcmds 2023-12-04 v1.26 LaTeX kernel commands for general use (HO) +) (/usr/share/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty +Package: pdftexcmds 2020-06-27 v0.33 Utility functions of pdfTeX for LuaTeX (HO) + (/usr/share/texmf-dist/tex/generic/infwarerr/infwarerr.sty +Package: infwarerr 2019/12/03 v1.5 Providing info/warning/error messages (HO) +) +Package pdftexcmds Info: \pdf@primitive is available. +Package pdftexcmds Info: \pdf@ifprimitive is available. +Package pdftexcmds Info: \pdfdraftmode found. +)) (/usr/share/texmf-dist/tex/latex/hycolor/hycolor.sty +Package: hycolor 2020-01-27 v1.10 Color options for hyperref/bookmark (HO) +) (/usr/share/texmf-dist/tex/latex/auxhook/auxhook.sty +Package: auxhook 2019-12-17 v1.6 Hooks for auxiliary files (HO) +) (/usr/share/texmf-dist/tex/latex/hyperref/nameref.sty +Package: nameref 2023-11-26 v2.56 Cross-referencing by name of section + (/usr/share/texmf-dist/tex/latex/refcount/refcount.sty +Package: refcount 2019/12/15 v3.6 Data extraction from label references (HO) +) (/usr/share/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty +Package: gettitlestring 2019/12/15 v1.6 Cleanup title references (HO) + (/usr/share/texmf-dist/tex/latex/kvoptions/kvoptions.sty +Package: kvoptions 2022-06-15 v3.15 Key value format for package options (HO) +)) +\c@section@level=\count267 +) (/usr/share/texmf-dist/tex/latex/etoolbox/etoolbox.sty +Package: etoolbox 2020/10/05 v2.5k e-TeX tools for LaTeX (JAW) +\etb@tempcnta=\count268 +) +\@linkdim=\dimen155 +\Hy@linkcounter=\count269 +\Hy@pagecounter=\count270 + (/usr/share/texmf-dist/tex/latex/hyperref/pd1enc.def +File: pd1enc.def 2024-01-20 v7.01h Hyperref: PDFDocEncoding definition (HO) +Now handling font encoding PD1 ... +... no UTF-8 mapping file for font encoding PD1 +) (/usr/share/texmf-dist/tex/generic/intcalc/intcalc.sty +Package: intcalc 2019/12/15 v1.3 Expandable calculations with integers (HO) +) +\Hy@SavedSpaceFactor=\count271 + (/usr/share/texmf-dist/tex/latex/hyperref/puenc.def +File: puenc.def 2024-01-20 v7.01h Hyperref: PDF Unicode definition (HO) +Now handling font encoding PU ... +... no UTF-8 mapping file for font encoding PU +) +Package hyperref Info: Hyper figures OFF on input line 4179. +Package hyperref Info: Link nesting OFF on input line 4184. +Package hyperref Info: Hyper index ON on input line 4187. +Package hyperref Info: Plain pages OFF on input line 4194. +Package hyperref Info: Backreferencing OFF on input line 4199. +Package hyperref Info: Implicit mode ON; LaTeX internals redefined. +Package hyperref Info: Bookmarks ON on input line 4446. +\c@Hy@tempcnt=\count272 + (/usr/share/texmf-dist/tex/latex/url/url.sty +\Urlmuskip=\muskip16 +Package: url 2013/09/16 ver 3.4 Verb mode for urls, etc. +) +LaTeX Info: Redefining \url on input line 4784. +\XeTeXLinkMargin=\dimen156 + (/usr/share/texmf-dist/tex/generic/bitset/bitset.sty +Package: bitset 2019/12/09 v1.3 Handle bit-vector datatype (HO) + (/usr/share/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty +Package: bigintcalc 2019/12/15 v1.5 Expandable calculations on big integers (HO) +)) +\Fld@menulength=\count273 +\Field@Width=\dimen157 +\Fld@charsize=\dimen158 +Package hyperref Info: Hyper figures OFF on input line 6063. +Package hyperref Info: Link nesting OFF on input line 6068. +Package hyperref Info: Hyper index ON on input line 6071. +Package hyperref Info: backreferencing OFF on input line 6078. +Package hyperref Info: Link coloring OFF on input line 6083. +Package hyperref Info: Link coloring with OCG OFF on input line 6088. +Package hyperref Info: PDF/A mode OFF on input line 6093. + (/usr/share/texmf-dist/tex/latex/base/atbegshi-ltx.sty +Package: atbegshi-ltx 2021/01/10 v1.0c Emulation of the original atbegshi +package with kernel methods +) +\Hy@abspage=\count274 +\c@Item=\count275 +\c@Hfootnote=\count276 +) +Package hyperref Info: Driver (autodetected): hpdftex. + (/usr/share/texmf-dist/tex/latex/hyperref/hpdftex.def +File: hpdftex.def 2024-01-20 v7.01h Hyperref driver for pdfTeX + (/usr/share/texmf-dist/tex/latex/base/atveryend-ltx.sty +Package: atveryend-ltx 2020/08/19 v1.0a Emulation of the original atveryend package +with kernel methods +) +\Fld@listcount=\count277 +\c@bookmark@seq@number=\count278 + (/usr/share/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty +Package: rerunfilecheck 2022-07-10 v1.10 Rerun checks for auxiliary files (HO) + +(/usr/share/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty +Package: uniquecounter 2019/12/15 v1.4 Provide unlimited unique counter (HO) +) +Package uniquecounter Info: New unique counter `rerunfilecheck' on input line 285. +) +\Hy@SectionHShift=\skip55 +) (/usr/share/texmf-dist/tex/latex/listings/listings.sty +\lst@mode=\count279 +\lst@gtempboxa=\box52 +\lst@token=\toks20 +\lst@length=\count280 +\lst@currlwidth=\dimen159 +\lst@column=\count281 +\lst@pos=\count282 +\lst@lostspace=\dimen160 +\lst@width=\dimen161 +\lst@newlines=\count283 +\lst@lineno=\count284 +\lst@maxwidth=\dimen162 + (/usr/share/texmf-dist/tex/latex/listings/lstpatch.sty +File: lstpatch.sty 2024/02/21 1.10 (Carsten Heinz) +) (/usr/share/texmf-dist/tex/latex/listings/lstmisc.sty +File: lstmisc.sty 2024/02/21 1.10 (Carsten Heinz) +\c@lstnumber=\count285 +\lst@skipnumbers=\count286 +\lst@framebox=\box53 +) (/usr/share/texmf-dist/tex/latex/listings/listings.cfg +File: listings.cfg 2024/02/21 1.10 listings configuration +)) +Package: listings 2024/02/21 1.10 (Carsten Heinz) + (/usr/share/texmf-dist/tex/latex/xcolor/xcolor.sty +Package: xcolor 2023/11/15 v3.01 LaTeX color extensions (UK) + (/usr/share/texmf-dist/tex/latex/graphics-cfg/color.cfg +File: color.cfg 2016/01/02 v1.6 sample color configuration +) +Package xcolor Info: Driver file: pdftex.def on input line 274. + (/usr/share/texmf-dist/tex/latex/graphics-def/pdftex.def +File: pdftex.def 2022/09/22 v1.2b Graphics/color driver for pdftex +) (/usr/share/texmf-dist/tex/latex/graphics/mathcolor.ltx) +Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1350. +Package xcolor Info: Model `hsb' substituted by `rgb' on input line 1354. +Package xcolor Info: Model `RGB' extended on input line 1366. +Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1368. +Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1369. +Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1370. +Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1371. +Package xcolor Info: Model `Gray' substituted by `gray' on input line 1372. +Package xcolor Info: Model `wave' substituted by `hsb' on input line 1373. +) (/usr/share/texmf-dist/tex/latex/graphics/graphicx.sty +Package: graphicx 2021/09/16 v1.2d Enhanced LaTeX Graphics (DPC,SPQR) + (/usr/share/texmf-dist/tex/latex/graphics/graphics.sty +Package: graphics 2022/03/10 v1.4e Standard LaTeX Graphics (DPC,SPQR) + (/usr/share/texmf-dist/tex/latex/graphics/trig.sty +Package: trig 2021/08/11 v1.11 sin cos tan (DPC) +) (/usr/share/texmf-dist/tex/latex/graphics-cfg/graphics.cfg +File: graphics.cfg 2016/06/04 v1.11 sample graphics configuration +) +Package graphics Info: Driver file: pdftex.def on input line 107. +) +\Gin@req@height=\dimen163 +\Gin@req@width=\dimen164 +) (/usr/share/texmf-dist/tex/latex/forest/forest.sty +Package: forest 2017/07/14 v2.1.5 Drawing (linguistic) trees + (/usr/share/texmf-dist/tex/latex/pgf/frontendlayer/tikz.sty (/usr/share/texmf-dist/tex/latex/pgf/basiclayer/pgf.sty (/usr/share/texmf-dist/tex/latex/pgf/utilities/pgfrcs.sty (/usr/share/texmf-dist/tex/generic/pgf/utilities/pgfutil-common.tex +\pgfutil@everybye=\toks21 +\pgfutil@tempdima=\dimen165 +\pgfutil@tempdimb=\dimen166 +) (/usr/share/texmf-dist/tex/generic/pgf/utilities/pgfutil-latex.def +\pgfutil@abb=\box54 +) (/usr/share/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex (/usr/share/texmf-dist/tex/generic/pgf/pgf.revision.tex) +Package: pgfrcs 2023-01-15 v3.1.10 (3.1.10) +)) +Package: pgf 2023-01-15 v3.1.10 (3.1.10) + (/usr/share/texmf-dist/tex/latex/pgf/basiclayer/pgfcore.sty (/usr/share/texmf-dist/tex/latex/pgf/systemlayer/pgfsys.sty (/usr/share/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex +Package: pgfsys 2023-01-15 v3.1.10 (3.1.10) + (/usr/share/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex +\pgfkeys@pathtoks=\toks22 +\pgfkeys@temptoks=\toks23 + (/usr/share/texmf-dist/tex/generic/pgf/utilities/pgfkeyslibraryfiltered.code.tex +\pgfkeys@tmptoks=\toks24 +)) +\pgf@x=\dimen167 +\pgf@y=\dimen168 +\pgf@xa=\dimen169 +\pgf@ya=\dimen170 +\pgf@xb=\dimen171 +\pgf@yb=\dimen172 +\pgf@xc=\dimen173 +\pgf@yc=\dimen174 +\pgf@xd=\dimen175 +\pgf@yd=\dimen176 +\w@pgf@writea=\write3 +\r@pgf@reada=\read3 +\c@pgf@counta=\count287 +\c@pgf@countb=\count288 +\c@pgf@countc=\count289 +\c@pgf@countd=\count290 +\t@pgf@toka=\toks25 +\t@pgf@tokb=\toks26 +\t@pgf@tokc=\toks27 +\pgf@sys@id@count=\count291 + (/usr/share/texmf-dist/tex/generic/pgf/systemlayer/pgf.cfg +File: pgf.cfg 2023-01-15 v3.1.10 (3.1.10) +) +Driver file for pgf: pgfsys-pdftex.def + (/usr/share/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-pdftex.def +File: pgfsys-pdftex.def 2023-01-15 v3.1.10 (3.1.10) + (/usr/share/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-common-pdf.def +File: pgfsys-common-pdf.def 2023-01-15 v3.1.10 (3.1.10) +))) (/usr/share/texmf-dist/tex/generic/pgf/systemlayer/pgfsyssoftpath.code.tex +File: pgfsyssoftpath.code.tex 2023-01-15 v3.1.10 (3.1.10) +\pgfsyssoftpath@smallbuffer@items=\count292 +\pgfsyssoftpath@bigbuffer@items=\count293 +) (/usr/share/texmf-dist/tex/generic/pgf/systemlayer/pgfsysprotocol.code.tex +File: pgfsysprotocol.code.tex 2023-01-15 v3.1.10 (3.1.10) +)) (/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcore.code.tex +Package: pgfcore 2023-01-15 v3.1.10 (3.1.10) + +(/usr/share/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex (/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathutil.code.tex) (/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathparser.code.tex +\pgfmath@dimen=\dimen177 +\pgfmath@count=\count294 +\pgfmath@box=\box55 +\pgfmath@toks=\toks28 +\pgfmath@stack@operand=\toks29 +\pgfmath@stack@operation=\toks30 +) (/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.code.tex) (/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.basic.code.tex) (/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.trigonometric.code.tex) (/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.random.code.tex) (/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.comparison.code.tex) (/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.base.code.tex) (/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.round.code.tex) (/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.misc.code.tex) (/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.integerarithmetics.code.tex) (/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathcalc.code.tex) (/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfloat.code.tex +\c@pgfmathroundto@lastzeros=\count295 +)) (/usr/share/texmf-dist/tex/generic/pgf/math/pgfint.code.tex) (/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepoints.code.tex +File: pgfcorepoints.code.tex 2023-01-15 v3.1.10 (3.1.10) +\pgf@picminx=\dimen178 +\pgf@picmaxx=\dimen179 +\pgf@picminy=\dimen180 +\pgf@picmaxy=\dimen181 +\pgf@pathminx=\dimen182 +\pgf@pathmaxx=\dimen183 +\pgf@pathminy=\dimen184 +\pgf@pathmaxy=\dimen185 +\pgf@xx=\dimen186 +\pgf@xy=\dimen187 +\pgf@yx=\dimen188 +\pgf@yy=\dimen189 +\pgf@zx=\dimen190 +\pgf@zy=\dimen191 +) (/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathconstruct.code.tex +File: pgfcorepathconstruct.code.tex 2023-01-15 v3.1.10 (3.1.10) +\pgf@path@lastx=\dimen192 +\pgf@path@lasty=\dimen193 +) (/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathusage.code.tex +File: pgfcorepathusage.code.tex 2023-01-15 v3.1.10 (3.1.10) +\pgf@shorten@end@additional=\dimen194 +\pgf@shorten@start@additional=\dimen195 +) (/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorescopes.code.tex +File: pgfcorescopes.code.tex 2023-01-15 v3.1.10 (3.1.10) +\pgfpic=\box56 +\pgf@hbox=\box57 +\pgf@layerbox@main=\box58 +\pgf@picture@serial@count=\count296 +) (/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcoregraphicstate.code.tex +File: pgfcoregraphicstate.code.tex 2023-01-15 v3.1.10 (3.1.10) +\pgflinewidth=\dimen196 +) (/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransformations.code.tex +File: pgfcoretransformations.code.tex 2023-01-15 v3.1.10 (3.1.10) +\pgf@pt@x=\dimen197 +\pgf@pt@y=\dimen198 +\pgf@pt@temp=\dimen199 +) (/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorequick.code.tex +File: pgfcorequick.code.tex 2023-01-15 v3.1.10 (3.1.10) +) (/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreobjects.code.tex +File: pgfcoreobjects.code.tex 2023-01-15 v3.1.10 (3.1.10) +) (/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathprocessing.code.tex +File: pgfcorepathprocessing.code.tex 2023-01-15 v3.1.10 (3.1.10) +) (/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorearrows.code.tex +File: pgfcorearrows.code.tex 2023-01-15 v3.1.10 (3.1.10) +\pgfarrowsep=\dimen256 +) (/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreshade.code.tex +File: pgfcoreshade.code.tex 2023-01-15 v3.1.10 (3.1.10) +\pgf@max=\dimen257 +\pgf@sys@shading@range@num=\count297 +\pgf@shadingcount=\count298 +) +(/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreimage.code.tex +File: pgfcoreimage.code.tex 2023-01-15 v3.1.10 (3.1.10) +) (/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreexternal.code.tex +File: pgfcoreexternal.code.tex 2023-01-15 v3.1.10 (3.1.10) +\pgfexternal@startupbox=\box59 +) (/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorelayers.code.tex +File: pgfcorelayers.code.tex 2023-01-15 v3.1.10 (3.1.10) +) (/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransparency.code.tex +File: pgfcoretransparency.code.tex 2023-01-15 v3.1.10 (3.1.10) +) (/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepatterns.code.tex +File: pgfcorepatterns.code.tex 2023-01-15 v3.1.10 (3.1.10) +) (/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorerdf.code.tex +File: pgfcorerdf.code.tex 2023-01-15 v3.1.10 (3.1.10) +))) (/usr/share/texmf-dist/tex/generic/pgf/modules/pgfmoduleshapes.code.tex +File: pgfmoduleshapes.code.tex 2023-01-15 v3.1.10 (3.1.10) +\pgfnodeparttextbox=\box60 +) (/usr/share/texmf-dist/tex/generic/pgf/modules/pgfmoduleplot.code.tex +File: pgfmoduleplot.code.tex 2023-01-15 v3.1.10 (3.1.10) +) (/usr/share/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-0-65.sty +Package: pgfcomp-version-0-65 2023-01-15 v3.1.10 (3.1.10) +\pgf@nodesepstart=\dimen258 +\pgf@nodesepend=\dimen259 +) (/usr/share/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-1-18.sty +Package: pgfcomp-version-1-18 2023-01-15 v3.1.10 (3.1.10) +)) (/usr/share/texmf-dist/tex/latex/pgf/utilities/pgffor.sty (/usr/share/texmf-dist/tex/latex/pgf/utilities/pgfkeys.sty (/usr/share/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex)) (/usr/share/texmf-dist/tex/latex/pgf/math/pgfmath.sty (/usr/share/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex)) (/usr/share/texmf-dist/tex/generic/pgf/utilities/pgffor.code.tex +Package: pgffor 2023-01-15 v3.1.10 (3.1.10) +\pgffor@iter=\dimen260 +\pgffor@skip=\dimen261 +\pgffor@stack=\toks31 +\pgffor@toks=\toks32 +)) (/usr/share/texmf-dist/tex/generic/pgf/frontendlayer/tikz/tikz.code.tex +Package: tikz 2023-01-15 v3.1.10 (3.1.10) + (/usr/share/texmf-dist/tex/generic/pgf/libraries/pgflibraryplothandlers.code.tex +File: pgflibraryplothandlers.code.tex 2023-01-15 v3.1.10 (3.1.10) +\pgf@plot@mark@count=\count299 +\pgfplotmarksize=\dimen262 +) +\tikz@lastx=\dimen263 +\tikz@lasty=\dimen264 +\tikz@lastxsaved=\dimen265 +\tikz@lastysaved=\dimen266 +\tikz@lastmovetox=\dimen267 +\tikz@lastmovetoy=\dimen268 +\tikzleveldistance=\dimen269 +\tikzsiblingdistance=\dimen270 +\tikz@figbox=\box61 +\tikz@figbox@bg=\box62 +\tikz@tempbox=\box63 +\tikz@tempbox@bg=\box64 +\tikztreelevel=\count300 +\tikznumberofchildren=\count301 +\tikznumberofcurrentchild=\count302 +\tikz@fig@count=\count303 + (/usr/share/texmf-dist/tex/generic/pgf/modules/pgfmodulematrix.code.tex +File: pgfmodulematrix.code.tex 2023-01-15 v3.1.10 (3.1.10) +\pgfmatrixcurrentrow=\count304 +\pgfmatrixcurrentcolumn=\count305 +\pgf@matrix@numberofcolumns=\count306 +) +\tikz@expandcount=\count307 + (/usr/share/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarytopaths.code.tex +File: tikzlibrarytopaths.code.tex 2023-01-15 v3.1.10 (3.1.10) +))) (/usr/share/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryshapes.code.tex +File: tikzlibraryshapes.code.tex 2023-01-15 v3.1.10 (3.1.10) + (/usr/share/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryshapes.geometric.code.tex +File: tikzlibraryshapes.geometric.code.tex 2023-01-15 v3.1.10 (3.1.10) + (/usr/share/texmf-dist/tex/generic/pgf/libraries/shapes/pgflibraryshapes.geometric.code.tex +File: pgflibraryshapes.geometric.code.tex 2023-01-15 v3.1.10 (3.1.10) +)) (/usr/share/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryshapes.misc.code.tex +File: tikzlibraryshapes.misc.code.tex 2023-01-15 v3.1.10 (3.1.10) + (/usr/share/texmf-dist/tex/generic/pgf/libraries/shapes/pgflibraryshapes.misc.code.tex +File: pgflibraryshapes.misc.code.tex 2023-01-15 v3.1.10 (3.1.10) +)) +(/usr/share/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryshapes.symbols.code.tex +File: tikzlibraryshapes.symbols.code.tex 2023-01-15 v3.1.10 (3.1.10) + (/usr/share/texmf-dist/tex/generic/pgf/libraries/shapes/pgflibraryshapes.symbols.code.tex +File: pgflibraryshapes.symbols.code.tex 2023-01-15 v3.1.10 (3.1.10) +)) (/usr/share/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryshapes.arrows.code.tex +File: tikzlibraryshapes.arrows.code.tex 2023-01-15 v3.1.10 (3.1.10) + (/usr/share/texmf-dist/tex/generic/pgf/libraries/shapes/pgflibraryshapes.arrows.code.tex +File: pgflibraryshapes.arrows.code.tex 2023-01-15 v3.1.10 (3.1.10) +)) (/usr/share/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryshapes.callouts.code.tex (/usr/share/texmf-dist/tex/generic/pgf/libraries/shapes/pgflibraryshapes.callouts.code.tex)) (/usr/share/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryshapes.multipart.code.tex +File: tikzlibraryshapes.multipart.code.tex 2023-01-15 v3.1.10 (3.1.10) + (/usr/share/texmf-dist/tex/generic/pgf/libraries/shapes/pgflibraryshapes.multipart.code.tex +File: pgflibraryshapes.multipart.code.tex 2023-01-15 v3.1.10 (3.1.10) +\pgfnodepartlowerbox=\box65 +\pgfnodeparttwobox=\box66 +\pgfnodepartthreebox=\box67 +\pgfnodepartfourbox=\box68 +\pgfnodeparttwentybox=\box69 +\pgfnodepartnineteenbox=\box70 +\pgfnodeparteighteenbox=\box71 +\pgfnodepartseventeenbox=\box72 +\pgfnodepartsixteenbox=\box73 +\pgfnodepartfifteenbox=\box74 +\pgfnodepartfourteenbox=\box75 +\pgfnodepartthirteenbox=\box76 +\pgfnodeparttwelvebox=\box77 +\pgfnodepartelevenbox=\box78 +\pgfnodeparttenbox=\box79 +\pgfnodepartninebox=\box80 +\pgfnodeparteightbox=\box81 +\pgfnodepartsevenbox=\box82 +\pgfnodepartsixbox=\box83 +\pgfnodepartfivebox=\box84 +))) (/usr/share/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryfit.code.tex +File: tikzlibraryfit.code.tex 2023-01-15 v3.1.10 (3.1.10) +) (/usr/share/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarycalc.code.tex +File: tikzlibrarycalc.code.tex 2023-01-15 v3.1.10 (3.1.10) +) (/usr/share/texmf-dist/tex/generic/pgf/libraries/pgflibraryintersections.code.tex (/usr/share/texmf-dist/tex/generic/pgf/libraries/pgflibraryfpu.code.tex) +\pgf@intersect@solutions=\count308 +) (/usr/share/texmf-dist/tex/latex/pgfopts/pgfopts.sty +Package: pgfopts 2014/07/10 v2.1a LaTeX package options with pgfkeys +\pgfopts@list@add@a@toks=\toks33 +\pgfopts@list@add@b@toks=\toks34 +) (/usr/share/texmf-dist/tex/latex/elocalloc/elocalloc.sty +Package: elocalloc 2016/12/15 v0.03 local allocation for LaTeX 2015+ (DPC) +) (/usr/share/texmf-dist/tex/latex/environ/environ.sty +Package: environ 2014/05/04 v0.3 A new way to define environments + (/usr/share/texmf-dist/tex/latex/trimspaces/trimspaces.sty +Package: trimspaces 2009/09/17 v1.1 Trim spaces around a token list +) +\@envbody=\toks35 +) (/usr/share/texmf-dist/tex/latex/l3packages/xparse/xparse.sty (/usr/share/texmf-dist/tex/latex/l3kernel/expl3.sty +Package: expl3 2024-02-20 L3 programming layer (loader) + (/usr/share/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def +File: l3backend-pdftex.def 2024-02-20 L3 backend support: PDF output (pdfTeX) +\l__color_backend_stack_int=\count309 +\l__pdf_internal_box=\box85 +)) +Package: xparse 2024-02-18 L3 Experimental document command parser +) (/usr/share/texmf-dist/tex/latex/inlinedef/inlinedef.sty +Package: inlinedef 2008/07/10 v1.0 Inlined expansions within definitions +\ID@toks=\toks36 +\ID@count=\count310 +) +\ID@usercommands=\toks37 +\safeloop@depth=\count311 +\safeRKloop@depth=\count312 +\forest@temp@dimen=\dimen271 +\forest@temp@count=\count313 +\forest@n=\count314 +\forest@temp@global@count=\count315 +\forest@temp@toks=\toks38 +\forest@temparray@M=\count316 +\forest@temparray@N=\count317 +\forest@global@temparray@M=\count318 +\forest@global@temparray@N=\count319 +\forest@isnum@count=\count320 +\forest@isdim@nonintpart=\count321 +\forest@isdim@dimen=\dimen272 +\forest@sort@m=\count322 +\forest@sort@k=\count323 +\forest@sort@p=\count324 +\bracket@content=\toks39 +\bracket@afterthought=\toks40 +\forest@node@maxid=\count325 +\forest@process@left@M=\count326 +\forest@process@left@N=\count327 +\forest@process@right@M=\count328 +\forest@process@right@N=\count329 +\forest@process@saved@M=\count330 +\forest@process@saved@N=\count331 +\forest@process@result@M=\count332 +\forest@process@result@N=\count333 +\forest@process@n=\count334 +\forest@nodewalk@branch@toks=\toks41 +\forest@nodewalk@shortsteps@resolution=\toks42 +\forest@do@dynamics=\toks43 +\forest@box=\box86 +\forest@xg=\dimen273 +\forest@yg=\dimen274 +\forest@xs=\dimen275 +\forest@ys=\dimen276 +\forest@pi@toks=\toks44 +\forest@segment@toks=\toks45 +\forest@PIi@toks=\toks46 +\forest@PIii@toks=\toks47 +\forest@copy@in=\read4 +\forest@copy@out=\write4 +\forest@externalize@max@outer@n=\count335 +\forest@externalize@inner@n=\count336 +) (/usr/share/texmf-dist/tex/latex/tikz-qtree/tikz-qtree.sty (/usr/share/texmf-dist/tex/latex/tikz-qtree/pgftree.sty (/usr/share/texmf-dist/tex/latex/tikz-qtree/pgfsubpic.sty (/usr/share/texmf-dist/tex/latex/tikz-qtree/pgfsubpic.tex +\pgf@subpicminx=\dimen277 +\pgf@subpicminy=\dimen278 +\pgf@subpicmaxx=\dimen279 +\pgf@subpicmaxy=\dimen280 +)) (/usr/share/texmf-dist/tex/latex/tikz-qtree/pgftree.tex +\levelsep=\dimen281 +\subtreesep=\dimen282 +\smuggle@levelsep=\dimen283 +\smuggle@subtreesep=\dimen284 +\this@levelsep=\dimen285 +\this@subtreesep=\dimen286 +\pgftree@childx=\dimen287 +\pgftree@savechildx=\dimen288 +\pgftree@childy=\dimen289 +\pgftree@savechildy=\dimen290 +\pgftree@childi=\count337 +\pgftree@savechildi=\count338 +\pgftree@level=\count339 +\pgftree@depth=\dimen291 +\pgf@subpic@hbox@children=\box87 +\pgf@subpic@minx@children=\dimen292 +\pgf@subpic@miny@children=\dimen293 +\pgf@subpic@maxx@children=\dimen294 +\pgf@subpic@maxy@children=\dimen295 +\pgftree@lastchildx=\dimen296 +\pgftree@lastchildy=\dimen297 +)) (/usr/share/texmf-dist/tex/latex/tikz-qtree/tikz-qtree.tex +\@result=\toks48 +\child@list=\toks49 +\root@node=\toks50 +)) + +Package geometry Warning: Over-specification in `h'-direction. + `width' (483.69684pt) is ignored. + +(./writeup.aux) +\openout1 = `writeup.aux'. + +LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 55. +LaTeX Font Info: ... okay on input line 55. +LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 55. +LaTeX Font Info: ... okay on input line 55. +LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 55. +LaTeX Font Info: ... okay on input line 55. +LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 55. +LaTeX Font Info: ... okay on input line 55. +LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 55. +LaTeX Font Info: ... okay on input line 55. +LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 55. +LaTeX Font Info: ... okay on input line 55. +LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 55. +LaTeX Font Info: ... okay on input line 55. +LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 55. +LaTeX Font Info: ... okay on input line 55. +LaTeX Font Info: Checking defaults for PU/pdf/m/n on input line 55. +LaTeX Font Info: ... okay on input line 55. + +*geometry* driver: auto-detecting +*geometry* detected driver: pdftex +*geometry* verbose mode - [ preamble ] result: +* driver: pdftex +* paper: a4paper +* layout: <same size as paper> +* layoutoffset:(h,v)=(0.0pt,0.0pt) +* modes: +* h-part:(L,W,R)=(56.9055pt, 483.69687pt, 56.9055pt) +* v-part:(T,H,B)=(45.52438pt, 731.23582pt, 68.28664pt) +* \paperwidth=597.50787pt +* \paperheight=845.04684pt +* \textwidth=483.69687pt +* \textheight=731.23582pt +* \oddsidemargin=-15.36449pt +* \evensidemargin=-15.36449pt +* \topmargin=-63.7456pt +* \headheight=12.0pt +* \headsep=25.0pt +* \topskip=12.0pt +* \footskip=30.0pt +* \marginparwidth=35.0pt +* \marginparsep=10.0pt +* \columnsep=10.0pt +* \skip\footins=10.8pt plus 4.0pt minus 2.0pt +* \hoffset=0.0pt +* \voffset=0.0pt +* \mag=1000 +* \@twocolumnfalse +* \@twosidefalse +* \@mparswitchfalse +* \@reversemarginfalse +* (1in=72.27pt=25.4mm, 1cm=28.453pt) + +Package hyperref Info: Link coloring OFF on input line 55. +(./writeup.out) (./writeup.out) +\@outlinefile=\write5 +\openout5 = `writeup.out'. + +\c@lstlisting=\count340 + (/usr/share/texmf-dist/tex/context/base/mkii/supp-pdf.mkii +[Loading MPS to PDF converter (version 2006.09.02).] +\scratchcounter=\count341 +\scratchdimen=\dimen298 +\scratchbox=\box88 +\nofMPsegments=\count342 +\nofMParguments=\count343 +\everyMPshowfont=\toks51 +\MPscratchCnt=\count344 +\MPscratchDim=\dimen299 +\MPnumerator=\count345 +\makeMPintoPDFobject=\count346 +\everyMPtoPDFconversion=\toks52 +) (/usr/share/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty +Package: epstopdf-base 2020-01-24 v2.11 Base part for package epstopdf +Package epstopdf-base Info: Redefining graphics rule for `.eps' on input line 485. + (/usr/share/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg +File: epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Live +)) +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <14.4> on input line 57. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <7> on input line 57. + [1 + +{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}] (./writeup.toc +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <12> on input line 4. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <8> on input line 4. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <6> on input line 4. +) +\tf@toc=\write6 +\openout6 = `writeup.toc'. + + [2] [3] [4] [5] +Overfull \hbox (8.48462pt too wide) in paragraph at lines 248--249 +[]\OT1/cmr/m/n/12 Speed, read-abil-ity, de-bug-ging ease + [] + + +Overfull \hbox (2.0985pt too wide) in paragraph at lines 250--253 +[]\OT1/cmr/m/n/12 IDE in-te-gra-tion (things like tab com- + [] + + +Overfull \hbox (0.31256pt too wide) in paragraph at lines 263--264 +[]\OT1/cmr/m/n/12 I like a + [] + + +Overfull \hbox (2.0225pt too wide) in paragraph at lines 268--271 +[]\OT1/cmr/m/n/12 I try to use as lit-tle lan-guages + [] + + +Overfull \hbox (17.51675pt too wide) in paragraph at lines 272--275 +[]\OT1/cmr/m/n/12 I think + [] + + +Overfull \hbox (26.90446pt too wide) in paragraph at lines 276--277 +[] + [] + +[6] +Underfull \hbox (badness 10000) in paragraph at lines 320--325 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 326--328 + + [] + +(/usr/share/texmf-dist/tex/latex/listings/lstlang1.sty +File: lstlang1.sty 2024/02/21 1.10 listings language file +) (/usr/share/texmf-dist/tex/latex/listings/lstlang1.sty +File: lstlang1.sty 2024/02/21 1.10 listings language file +) (/usr/share/texmf-dist/tex/latex/listings/lstmisc.sty +File: lstmisc.sty 2024/02/21 1.10 (Carsten Heinz) +) +Package hyperref Info: bookmark level for unknown lstlisting defaults to 0 on input line 357. + [7{/usr/share/texmf-dist/fonts/enc/dvips/cm-super/cm-super-ts1.enc}] +Underfull \hbox (badness 10000) in paragraph at lines 398--400 + + [] + +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <17.28> on input line 401. + +Underfull \hbox (badness 10000) in paragraph at lines 401--403 + + [] + +[8] (../code/proto/AST/ast.c [9] [10]) [11] +Underfull \hbox (badness 10000) in paragraph at lines 461--463 + + [] + +(../code/proto/AST/astg.c) +Underfull \hbox (badness 10000) in paragraph at lines 465--467 + + [] + +(../code/proto/AST/astg.h [12]) +Underfull \hbox (badness 10000) in paragraph at lines 469--471 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 472--480 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 481--485 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 486--490 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 497--499 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 500--503 + + [] + +LaTeX Font Info: Font shape `OT1/cmtt/bx/n' in size <12> not available +(Font) Font shape `OT1/cmtt/m/n' tried instead on input line 505. +[13] [14] (./writeup.aux) + *********** +LaTeX2e <2023-11-01> patch level 1 +L3 programming layer <2024-02-20> + *********** +Package rerunfilecheck Info: File `writeup.out' has not changed. +(rerunfilecheck) Checksum: E70A9C8F057C1547035BAC5D30A3014A;4997. + ) +Here is how much of TeX's memory you used: + 33295 strings out of 476076 + 715046 string characters out of 5793775 + 2238187 words of memory out of 5000000 + 54687 multiletter control sequences out of 15000+600000 + 565524 words of font info for 61 fonts, out of 8000000 for 9000 + 14 hyphenation exceptions out of 8191 + 98i,9n,101p,1606b,2286s stack positions out of 10000i,1000n,20000p,200000b,200000s +</usr/share/texmf-dist/fonts/type1/public/amsfonts/cm/cmbx12.pfb></usr/share/texmf-dist/fonts/type1/public/amsfonts/cm/cmbxti10.pfb></usr/share/texmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb></usr/share/texmf-dist/fonts/type1/public/amsfonts/cm/cmr12.pfb></usr/share/texmf-dist/fonts/type1/public/amsfonts/cm/cmr17.pfb></usr/share/texmf-dist/fonts/type1/public/amsfonts/cm/cmr6.pfb></usr/share/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy10.pfb></usr/share/texmf-dist/fonts/type1/public/amsfonts/cm/cmti12.pfb></usr/share/texmf-dist/fonts/type1/public/amsfonts/cm/cmtt10.pfb></usr/share/texmf-dist/fonts/type1/public/amsfonts/cm/cmtt12.pfb></usr/share/texmf-dist/fonts/type1/public/cm-super/sfrm1200.pfb> +Output written on writeup.pdf (14 pages, 186326 bytes). +PDF statistics: + 566 PDF objects out of 1000 (max. 8388607) + 522 compressed objects within 6 object streams + 271 named destinations out of 1000 (max. 500000) + 229 words of extra memory for PDF output out of 10000 (max. 10000000) + diff --git a/comp/lucas-standen-NEA/writeup2/writeup.out b/comp/lucas-standen-NEA/writeup2/writeup.out new file mode 100644 index 0000000..f14fad4 --- /dev/null +++ b/comp/lucas-standen-NEA/writeup2/writeup.out @@ -0,0 +1,27 @@ +\BOOKMARK [1][-]{section.1}{\376\377\000A\000\040\000b\000r\000e\000i\000f\000\040\000h\000e\000a\000d\000\040\000n\000o\000t\000e\000\040\000a\000n\000d\000\040\000i\000n\000t\000r\000o\000d\000u\000c\000t\000i\000o\000n}{}% 1 +\BOOKMARK [1][-]{section.2}{\376\377\000A\000n\000a\000l\000y\000s\000i\000s}{}% 2 +\BOOKMARK [2][-]{subsection.2.1}{\376\377\000T\000h\000e\000\040\000c\000u\000r\000r\000e\000n\000t\000\040\000p\000r\000o\000b\000l\000e\000m}{section.2}% 3 +\BOOKMARK [2][-]{subsection.2.2}{\376\377\000A\000\040\000s\000o\000l\000u\000t\000i\000o\000n}{section.2}% 4 +\BOOKMARK [2][-]{subsection.2.3}{\376\377\000W\000h\000a\000t\000\040\000i\000s\000\040\000a\000\040\000p\000r\000o\000g\000r\000a\000m\000m\000i\000n\000g\000\040\000l\000a\000n\000g\000u\000a\000g\000e}{section.2}% 5 +\BOOKMARK [3][-]{subsubsection.2.3.1}{\376\377\000A\000\040\000v\000e\000r\000y\000\040\000s\000i\000m\000p\000l\000e\000\040\000e\000x\000p\000l\000a\000n\000a\000t\000i\000o\000n}{subsection.2.3}% 6 +\BOOKMARK [3][-]{subsubsection.2.3.2}{\376\377\000W\000h\000y\000\040\000a\000r\000e\000\040\000t\000h\000e\000r\000e\000\040\000s\000o\000\040\000m\000a\000n\000y}{subsection.2.3}% 7 +\BOOKMARK [2][-]{subsection.2.4}{\376\377\000R\000e\000s\000e\000a\000r\000c\000h\000i\000n\000g\000\040\000a\000n\000d\000\040\000g\000e\000t\000t\000i\000n\000g\000\040\000a\000\040\000s\000c\000o\000p\000e\000\040\000o\000f\000\040\000t\000h\000e\000\040\000p\000r\000o\000j\000e\000c\000t}{section.2}% 8 +\BOOKMARK [3][-]{subsubsection.2.4.1}{\376\377\000E\000x\000a\000m\000p\000l\000e\000s\000\040\000o\000f\000\040\000o\000l\000d\000e\000r\000\040\000s\000i\000m\000i\000l\000a\000r\000\040\000p\000r\000o\000j\000e\000c\000t\000s}{subsection.2.4}% 9 +\BOOKMARK [3][-]{subsubsection.2.4.2}{\376\377\000E\000x\000a\000m\000p\000l\000e\000s\000\040\000o\000f\000\040\000n\000e\000w\000e\000r\000\040\000s\000i\000m\000i\000l\000a\000r\000\040\000p\000r\000o\000j\000e\000c\000t\000s}{subsection.2.4}% 10 +\BOOKMARK [3][-]{subsubsection.2.4.3}{\376\377\000W\000h\000a\000t\000\040\000s\000h\000o\000u\000l\000d\000\040\000b\000e\000\040\000t\000a\000k\000e\000n\000\040\000a\000w\000a\000y\000\040\000f\000r\000o\000m\000\040\000t\000h\000e\000s\000e\000\040\000l\000a\000n\000g\000u\000a\000g\000e\000s}{subsection.2.4}% 11 +\BOOKMARK [2][-]{subsection.2.5}{\376\377\000C\000l\000i\000e\000n\000t\000s}{section.2}% 12 +\BOOKMARK [3][-]{subsubsection.2.5.1}{\376\377\000C\000l\000i\000e\000n\000t\000\040\0001\000:\000\040\000A\000m\000y\000\040\000C}{subsection.2.5}% 13 +\BOOKMARK [3][-]{subsubsection.2.5.2}{\376\377\000C\000l\000i\000e\000n\000t\000\040\0002\000:\000\040\000R\000a\000y\000n\000\040\000M}{subsection.2.5}% 14 +\BOOKMARK [3][-]{subsubsection.2.5.3}{\376\377\000C\000l\000i\000e\000n\000t\000\040\0003\000:\000\040\000M\000y\000s\000e\000l\000f}{subsection.2.5}% 15 +\BOOKMARK [2][-]{subsection.2.6}{\376\377\000Q\000u\000e\000s\000t\000i\000o\000n\000n\000a\000i\000r\000e\000s}{section.2}% 16 +\BOOKMARK [3][-]{subsubsection.2.6.1}{\376\377\000A\000m\000y\000\040\000C\000,\000\040\000i\000n\000i\000t\000i\000a\000l\000\040\000i\000d\000e\000a\000s}{subsection.2.6}% 17 +\BOOKMARK [3][-]{subsubsection.2.6.2}{\376\377\000N\000o\000t\000e\000s\000\040\000f\000r\000o\000m\000\040\000q\000u\000e\000s\000t\000i\000o\000n\000n\000a\000r\000e\000\040\0001}{subsection.2.6}% 18 +\BOOKMARK [2][-]{subsection.2.7}{\376\377\000T\000h\000e\000\040\000f\000i\000r\000s\000t\000\040\000e\000l\000e\000m\000e\000n\000t\000s\000\040\000o\000f\000\040\000t\000h\000e\000\040\000p\000r\000o\000j\000e\000c\000t}{section.2}% 19 +\BOOKMARK [1][-]{section.3}{\376\377\000M\000o\000d\000e\000l\000l\000i\000n\000g}{}% 20 +\BOOKMARK [2][-]{subsection.3.1}{\376\377\000L\000i\000n\000k\000e\000d\000\040\000l\000i\000s\000t\000s}{section.3}% 21 +\BOOKMARK [2][-]{subsection.3.2}{\376\377\000D\000i\000c\000t\000i\000o\000n\000a\000r\000i\000e\000s}{section.3}% 22 +\BOOKMARK [2][-]{subsection.3.3}{\376\377\000P\000r\000o\000t\000o\000t\000y\000p\000i\000n\000g\000\040\000h\000a\000r\000d\000e\000r\000\040\000f\000e\000a\000t\000u\000r\000e\000s}{section.3}% 23 +\BOOKMARK [3][-]{subsubsection.3.3.1}{\376\377\000A\000b\000s\000t\000r\000a\000c\000t\000\040\000s\000y\000n\000t\000a\000x\000\040\000t\000r\000e\000e\000s\000\040\000\050\000A\000S\000T\000'\000s\000\051\000\040\000t\000h\000e\000o\000r\000y}{subsection.3.3}% 24 +\BOOKMARK [3][-]{subsubsection.3.3.2}{\376\377\000A\000b\000s\000t\000r\000a\000c\000t\000\040\000s\000y\000n\000t\000a\000x\000\040\000t\000r\000e\000e\000s\000\040\000\050\000A\000S\000T\000'\000s\000\051\000\040\000p\000r\000a\000c\000t\000i\000c\000a\000l}{subsection.3.3}% 25 +\BOOKMARK [2][-]{subsection.3.4}{\376\377\000F\000e\000e\000d\000b\000a\000c\000k}{section.3}% 26 +\BOOKMARK [2][-]{subsection.3.5}{\376\377\000M\000i\000x\000i\000n\000g\000\040\000l\000i\000n\000k\000e\000d\000\040\000l\000i\000s\000t\000s\000\040\000a\000n\000d\000\040\000A\000S\000T\000'\000s}{section.3}% 27 diff --git a/comp/lucas-standen-NEA/writeup2/writeup.synctex.gz b/comp/lucas-standen-NEA/writeup2/writeup.synctex.gz Binary files differnew file mode 100644 index 0000000..90a6a89 --- /dev/null +++ b/comp/lucas-standen-NEA/writeup2/writeup.synctex.gz diff --git a/comp/lucas-standen-NEA/writeup2/writeup.tex b/comp/lucas-standen-NEA/writeup2/writeup.tex new file mode 100644 index 0000000..7427570 --- /dev/null +++ b/comp/lucas-standen-NEA/writeup2/writeup.tex @@ -0,0 +1,523 @@ +\documentclass[a4paper,12pt]{article} + +\usepackage{geometry} +\usepackage{titling} +\usepackage{titlesec} +\usepackage[english]{babel} +\usepackage[hidelinks]{hyperref} +\usepackage{listings} +\usepackage{xcolor} +\usepackage{graphicx} +\usepackage{forest} +\usepackage{tikz-qtree} + +\definecolor{codegreen}{rgb}{0,0.6,0} +\definecolor{codegray}{rgb}{0.5,0.5,0.5} +\definecolor{codepurple}{rgb}{0.58,0,0.82} +\definecolor{backcolour}{rgb}{0.95,0.95,0.92} + +\lstdefinestyle{mystyle}{ + backgroundcolor=\color{backcolour}, + commentstyle=\color{codegreen}, + keywordstyle=\color{magenta}, + numberstyle=\tiny\color{codegray}, + stringstyle=\color{codepurple}, + basicstyle=\ttfamily\footnotesize, + breakatwhitespace=false, + breaklines=true, + captionpos=b, + keepspaces=true, + numbers=left, + numbersep=5pt, + showspaces=false, + showstringspaces=false, + showtabs=false, + tabsize=8 +} + +\lstset{style=mystyle} + +\titleformat{\section} +{\Huge} +{} +{0em} +{}[\titlerule] +\geometry{ + a4paper, + total={170mm,257mm}, + left=20mm, + right=20mm, +} + +\author{Lucas Standen} +\title{The solution to bad code} + +\begin{document} +\maketitle +\newpage +\tableofcontents +\newpage + +{\setlength{\parindent}{0cm} + +\section{A breif head note and introduction} +This document has been written for the use within AQA computer science +Alevel coursework. It is published under the MiT license, which I hope +will make it of use to someone other than myself some day on the in's +and out's of simpler compiler design and programming languages as a +whole. + +This is the second version of this document, it was writen in GNU +roff before, however I decided to move over to latex for the +more moddern features (notably image support). The latex source for +this document is also avalible along with all referenced code at +\url{https://github.com/standenboy/school} + +Any questions relating to this document should be sent to +\href{mailto:thing1@seacrossedlovers.xyz}{thing1@seacrossedlovers.xyz} + +\section{Analysis} +\subsection{The current problem} +For general small and simple projects, I write in C. However this leads to +hours of debugging due to segfaults, and memory leaks. Due to the languages +manual memory management the programmer is required to know so much +information about the hardware they write for, and the second anything goes +wrong, it is vague on how to fix things. + +\textbf{I need a language that stops me from shooting myself in the foot} + +C has been standard for many decades now and its age is showing, it lacks +many modern features like OOP, or higher level functional abstractions, +that have become common in modern years due to there helpfulness. This is +not to fault C's achievements either, the language is my personal choice for +most projects for a reason, it's fast and powerful; any solution I make +should not cut that away. + +\subsection{A solution} + +\textbf{\textit{Zippy LANG}} + +A next generation language, for general use. Designed for keeping code simple, +neat and readable. It will be similar to functional languages, known for +there strict ability to keep code safe and practical. The language should +be compiled like C/C++, Haskell and Rust for fast runtime speeds + +The goal of Zippy is to make codding easier, while not limiting projects; to +achive this the compiler will most likely want to use some form of middle man +language to achieve compatibility with more libraries. + +\subsection{What is a programming language} +\subsubsection{A very simple explanation} +At its lowest definition a PL is a set of specific words, that when given +to a computer in the right order have a reproducible behaviour. A more human +way of saying that, would be "It's how we control computers". +\subsubsection{Why are there so many} +When someone is looking at code it can often be seen as just that, however +there are hundreds of languages that all take the idea of "code" in very +different ways. Some are designed for specific hardware, some are designed +for making general use programs while others are highly specialized. +It is important to see "code", as more than just one overarching term and +instead see where the code is being used, and evaluate it from that. + +\subsection{Researching and getting a scope of the project} +Before I start to design a language i should first find examples of others +and find what i want my language to be like. I'd like my language to feel modern +so i should take inspiration from what other modern languages do, however on the +backed i want my language to be stable and fast, for that i should look at +older projects. + +\subsubsection{Examples of older similar projects} +\begin{description} + \item[Python] + Python is a high level OOP language that was designed in + 1991. It was made to make programming easy while still being able + to use some of C's functions. Although it has become standard for + many use cases, it is slow and inefficient, and very bloated. + + \url{https://www.python.org/} + + Zippy should take pythons high level abstractions, as they make + programming very easy and it should try and take notes from its + libraries as they are mostly well written, + and well documented. + \item[Lisp] + Lisp is the second ever programming language, developed at MiT, + and it is the first functional language, creating many common features + like higher order functions, recursion, and garbage collection. It is + generally not used any more as it feels old compared to other functional + languages, like Ocaml or Haskell. + + \url{https://lisp-lang.org/} + + Zippy should try to take alot from the syntax of lisp, () make + it easy to see what parts of code will effect what, and make + things easy to tokenize. + \item[Perl] + Perl is scripting language designed for use in linux, when bash is + too slow, or not suited for the job. Perl is often described as the glue + of the universe (see xkcd \url{https://3d.xkcd.com/224/}. Its syntax is + quite strange however and it is slow. Making it poorly suited towards + general use. + + \url{https://www.perl.org/} + + Zippy should take from perls minimalism, it is a small language that is + of a similar size to bash or zsh, while feeling closer to python. + If Zippy can achieve a similar small size, while remaining + powerful I will be happy with this outcome. +\end{description} +\subsubsection{Examples of newer similar projects} +\begin{description} + \item[Gleam] + Gleam is a modern language releasing in the past 5 years. It is + highly functional, with no mutable data, no traditional loops. + Instead recursion can be used to replace alot of these features. + Gleam compiles to erlang/Beam bytecode, much like java to the + jvm, and doing this has made Gleam a highly scalable language with + good library support out the box. + + \url{https://gleam.run/} + + Zippy should take from the functional elements of Gleam, as they keep + programs safer, however Zippy should not remove all procedural + elements, as for loops are very helpful + \item[Haskell] + Haskell is another modern functional language known for being + very complicated, however incredibly powerful. Its syntax feels very + mathematical, and incredibly terse. + + \url{https://www.haskell.org/} + + Perhaps Zippy could learn from Haskell, as it provides functional and + procedural elements, making it a well rounded language + \item[Hare] + Hare was designed to be a 100 year language, and thus stability is + its main goal, it is not set to + have a syntax change any time soon, and it has strong emphasis on + memory managment like C. It fits into the same part of the tech stack + as C, and thus it can be used for some very low level work. + + \url{https://harelang.org/} + + I think Zippy should have a strong emphasis on stability, much like Hare, + too many times have I segfaulted due to a tiny mistake. Zippy should + also look to Hare's small size, you can buy a copy of Hare on a + + \textbf{SINGLE 3 1/2" FLOLPY} + + This is something I too should try to achieve. +\end{description} +\subsubsection{What should be taken away from these languages} +I was already leaning towards functional programming when I started this project however +now I believe it's the only option for producing safe applications. Zippy will be +a functional language. + +I also believe that I should take size of the compiler into account, as this is important +for keeping the project manageable and maintanable. + +And finally I think that syntax should be inspired by Lisp, although Lisp itself can be +a messy language, with the right changes I am confident that I can make a attractive +language for the 21st century. + +\subsection{Clients} +In a project of this nature, the Client is every programmer alive; which is a pretty +large scope. To narrow this down as much as possible, I will interview a small handful +of people throughout the project, of different skill levels to get a good picture of +what people think of the project. +\subsubsection{Client 1: Amy C} +My first client is a friend of mine, Amy C, she is a confident programmer who has +completed many complicated projects. I am choosing her as a client as she can give me +technical feed back on my project and its function/utility. +\subsubsection{Client 2: Rayn M} +Another friend of mine, Rayn M, is a technical computer user, however he does not know +how to program at a high level. He will be a good client as he can show me how my +language looks to some one who doesn't understand the inside workings, helping me +design the structure of the code to something useable for more people. +\subsubsection{Client 3: Myself} +I've wanted to take out a project like this for a long long time, and this is the +perfect opportunity to do so, I will be assessing myself along the way of this, +building the project to my personal specification. + +\subsection{Questionnaires} +It is important to get feedback from end users, so I will take multiple questionnaires +throughout the project. I will then use them to slightly edit the requirements of my +project this should make the final outcome more helpful and what people want. +\subsubsection{Amy C, initial ideas} +\begin{description} + \item[What do you find the most important in a language?] + Speed, readability, debugging ease and disk space efficiency. + \item[What tools are important for a language to have?] + IDE integration (things like tab complete and debugging tools), a + package manager, and the ability to interact with the user through the + command line easily. + \item[What features do you like from other languages?] + The ability to pass the memory reference of an object or function and a + collection of built-in or standard functions like "print", "split", + or "sort". + \item[What do you want to program in this language?] + Lightweight command line tools and web back ends. + \item[Do you intend to use graphics in the programs you write?] + Yes. + \item[Would you prefer a language that focuses on ease of + use, or power of code?] + I like a good balance between the two. + \item[What were your last 3 projects?] + A website, a small command-line tool and a midi keyboard (program runs + on a Raspberry Pi Pico). + \item[How many languages would you use on a single project?] + I try to use as little languages in a single project as possible, so i + could likely not use it in an existing project. + \item[Do you care for low level control, or would you prefer + high level abstractions?] + I think low-level control is very important, but high-level abstractions + are convenient, so a good balance between the two is best. + \item[Would you be happy to develop libraries for things that aren't + already implemented?] + Potentially if it is simple enough to implement new things. +\end{description} +\subsubsection{Notes from questionnare 1} +Some of the key things that I'm taking away from this first questionnaire, are my +client/users initial needs and use cases. I think it's clear my language can be of +assistance to my client, Zippy will be a good language for web back ends and +small command line tools, which my client expressed interested in. + +I find the fact my client is worried by executable size interesting, however +I doubt it will be an issue; a ballooning code-base is unlikely as only one +person is writing the whole project. + +I am also taking on the fact that my client wants good command line tools, +so a pkg-manager and bundler should be a priority, perhaps they could be +written in Zippy after the compiler is done. + +\subsection{The first elements of the project} +At this stage I can say that I'm confident in my project and its scope. I +have a goal in mind for +it. + +\textbf{The key things to take away from this section are:} + +\begin{itemize} + \item + Make a high level language with a useable set of features, to + replace C in many situations. + + \item + Keep the language readable and easy, with powerful tools available. + + \item + Ensure the language is well supported with tools like a pkg-manager. +\end{itemize} + +\section{Modelling} +In larger projects, when a programmer needs a data structure that the language +they are writing in doesn't provide, they will need to make their own. This can pose a +challenge to some, especially in low level languages which don't provide anything +out of the box. + +Bellow are a few examples of these data structures that C doesn't already provide, +that I may use in my project. +\subsection{Linked lists} +this is an alternative implementation of a list, where you store some data, and +the memory address to the next node. Then you can move through the list by reading +the data then reading the data of the next node, and then repeating until the +'next' part of the node is empty. +\\ + +A diagram showing this can be seen here: +\\ + +\begin{tikzpicture} + \tikzset{edge from parent/.style={draw,edge from parent path={(\tikzparentnode.south)-- +(0,-8pt)-| (\tikzchildnode)}}} + \Tree + [.ll + [.data + ] + [.next + [.ll + [.data + ] + [.next + [.ll + [.data + ] + [.next + ] + ] + ] + ] + ] + ] +\end{tikzpicture} + +In C this is easy to implement as you can find a memory address very easily with to +find where a bit of data is stored in memory (address of). I will need to use a 'struct', +which is a bit like a class in C (however you can't attach a function to it, nor use +inheritance). A simple implementation looks like this: + +\begin{lstlisting}[language=C++, caption=Linked list example] +typedef struct ll { + void *data; // the data of the node + ll *next; // the next node +} ll; +\end{lstlisting} + +The pro's of a linked list are the fact that they can have data appended to the start or +end easily by changing the root node, or the next node. + +Linked lists have a few downsides, for example you can't move through them backwards, +and unless you store it on its own, you cant find the length of it in a fast way. + +In my project I would like to use linked list in the AST (see later sections for info), +and perhaps to store lists in the language. + +\subsection{Dictionaries} +A dictionary is a simple data structure that just stores, a bit of data, and a number or +string to identify it. +A dictionary like a linked list can be implemented with a struct in c like so: +\begin{lstlisting}[language=C++, caption=Dictionary example] +typedef struct dict { + void *data; + int id; +} dict; +\end{lstlisting} + +In my project I could use this to hold variables and functions which need to be +checked and looked up, which is very slow when comparing entire strings, but with this +I can compare integer ID's which is much faster. + +\subsection{Prototyping harder features} +\subsubsection{Abstract syntax trees (AST's) theory} +In a programming language many abstract data types will be used to allow the code +to compile and execute, however I think the hardest part of this is an abstract +syntax tree. This is a data structure that holds the code in an ordered form that +can be analysed and executed in a simple way. It is a tree structure, with the top +node being a root and all lower nodes being things needed to calculate the root. It can +be used to show mathematical expressions and function calls, but I thing easiest way to +show it is via a mathematical example. + +Take the follow expression for example: +\\ + +{\Large{\(1 + (10 * (3 - (2 * 4)))\)}} +\\ + +We know that this is equal to \(-49\) + +However for a computer this is far harder to understand. This is because it has no +understanding of order of operation. + +To solve this we use an AST. + +When you solve that expression you know to start with +\((2 * 4)\), then \(3 -\) +from that, following the rules of BIDMAS to solve. + +We can represent the steps as a tree like so: + +\begin{tikzpicture} + \tikzset{edge from parent/.style={draw,edge from parent path={(\tikzparentnode.south)-- +(0,-8pt)-| (\tikzchildnode)}}} + \Tree + [.+ + [.1 + ] + [.* + [.10 + ] + [.- + [.3 + ] + [.* + [.2 + ] + [.4 + ] + ] + ] + ] + ] +\end{tikzpicture} +\\ +This will evaluate \(1 + (10 * (3 - (2 * 4)))\) + +As you can see, you need to evaluate the expression in the most brackets +first, then the next, and so on, working you way up. + +You can evaluate code in a similar way, treating each operation (such as +-*/) +as functions, doing the most deeply nested function first, then working up. +Each expression can be represented in this tree, then to show a whole program you +can create a list of trees. + +\subsubsection{Abstract syntax trees (AST's) practical} +As a prototype i will make a program that can take mathematical expressions and evaluate +them, and allowing for functions (in the form f(x)). It will do this via AST's. + +This prototype takes 173 lines of code, it takes a string as a cmd line argument then +converts it into an abstract syntax tree, and finally it executes it. This is just a +simple prototype and thus it is small in scope. It can only do simple operators (+-*/) +and requires literal values to be surrounded by [] so it knows its not another +expression to evaluate. + +\lstinputlisting[language=C++]{../code/proto/AST/ast.c} +\textit{The main loop for the ast code.} +\\ + +\lstinputlisting[language=C++]{../code/proto/AST/astg.c} +\textit{The execution loop for the ast code.} +\\ + +\lstinputlisting[language=C++]{../code/proto/AST/astg.h} +\textit{The definition of the ast, and function prototypes.} +\\ + +Above is the code for the AST, it stores an operation (which is just an integer), and +it stores a real left and real right value, along side two other nodes. The real values +are integers, this would be the 2 numbers in reference, in the expression. The 2 nodes are a +recursive data structure, much like putting an object of a class inside the definition of that class +itself. They are used to store values that may still be expressions, for example +(+ [1] (+ [1] [1])) the second part of this expression would be in the "right" +variable. +\\ + +When code is executed I can check if "left", or "right" are NULL and if +they are I know that I am at the lowest expression that is only literal values. +Then I can execute that node and work my way up the tree. +\\ + +The exec function will execute the operation, unless there is a deeper node, if there is +a deeper node, then it executes it, and places the result in the right or left spot +respectively. +\\ + +\textbf{Here is an example input and output:} + + ./ast "(+ (- [3] [1]) (- [3] [1]))" + +4 + +{\small Note the [ ] used to tell the program where the literal values are.} +\\ + +Overall this was a relatively successful prototype, however it isn't fully functional +as a language but it has fit the design for a prototype. +\\ + +\textbf{The code for the AST can be found here: +\url{https://github.com/standenboy/school/tree/master/comp/lucas-standen-NEA/code/proto/ast}} + +\subsection{Feedback} +From my first Client (Amy C), she said that putting the numbers inside square brackets +was inconvenient and annoying and it would be better if the numbers were separated +by spaces instead of separate square bracket surrounded literals. + +As this is a prototype I won't fix this issue, however in the actual language this is +a needed feature that I will be implementing. + +\subsection{Mixing linked lists and AST's} +Mixing these 2 data structures together you can represents an entire program. A linked +list of AST's is how Zippy will represent all code the user writes. To do this, use a +linked list, and in the data element put a AST, then the next node can contain the same. +This might be a help to zippy as the compiler can convert all code to an AST, then +compile it. +} +\end{document} + diff --git a/comp/lucas-standen-NEA/writeup2/writeup.toc b/comp/lucas-standen-NEA/writeup2/writeup.toc new file mode 100644 index 0000000..1455ed2 --- /dev/null +++ b/comp/lucas-standen-NEA/writeup2/writeup.toc @@ -0,0 +1,28 @@ +\babel@toc {english}{}\relax +\contentsline {section}{\numberline {1}A breif head note and introduction}{3}{section.1}% +\contentsline {section}{\numberline {2}Analysis}{3}{section.2}% +\contentsline {subsection}{\numberline {2.1}The current problem}{3}{subsection.2.1}% +\contentsline {subsection}{\numberline {2.2}A solution}{3}{subsection.2.2}% +\contentsline {subsection}{\numberline {2.3}What is a programming language}{3}{subsection.2.3}% +\contentsline {subsubsection}{\numberline {2.3.1}A very simple explanation}{3}{subsubsection.2.3.1}% +\contentsline {subsubsection}{\numberline {2.3.2}Why are there so many}{4}{subsubsection.2.3.2}% +\contentsline {subsection}{\numberline {2.4}Researching and getting a scope of the project}{4}{subsection.2.4}% +\contentsline {subsubsection}{\numberline {2.4.1}Examples of older similar projects}{4}{subsubsection.2.4.1}% +\contentsline {subsubsection}{\numberline {2.4.2}Examples of newer similar projects}{4}{subsubsection.2.4.2}% +\contentsline {subsubsection}{\numberline {2.4.3}What should be taken away from these languages}{5}{subsubsection.2.4.3}% +\contentsline {subsection}{\numberline {2.5}Clients}{5}{subsection.2.5}% +\contentsline {subsubsection}{\numberline {2.5.1}Client 1: Amy C}{5}{subsubsection.2.5.1}% +\contentsline {subsubsection}{\numberline {2.5.2}Client 2: Rayn M}{5}{subsubsection.2.5.2}% +\contentsline {subsubsection}{\numberline {2.5.3}Client 3: Myself}{6}{subsubsection.2.5.3}% +\contentsline {subsection}{\numberline {2.6}Questionnaires}{6}{subsection.2.6}% +\contentsline {subsubsection}{\numberline {2.6.1}Amy C, initial ideas}{6}{subsubsection.2.6.1}% +\contentsline {subsubsection}{\numberline {2.6.2}Notes from questionnare 1}{6}{subsubsection.2.6.2}% +\contentsline {subsection}{\numberline {2.7}The first elements of the project}{7}{subsection.2.7}% +\contentsline {section}{\numberline {3}Modelling}{7}{section.3}% +\contentsline {subsection}{\numberline {3.1}Linked lists}{7}{subsection.3.1}% +\contentsline {subsection}{\numberline {3.2}Dictionaries}{8}{subsection.3.2}% +\contentsline {subsection}{\numberline {3.3}Prototyping harder features}{8}{subsection.3.3}% +\contentsline {subsubsection}{\numberline {3.3.1}Abstract syntax trees (AST's) theory}{8}{subsubsection.3.3.1}% +\contentsline {subsubsection}{\numberline {3.3.2}Abstract syntax trees (AST's) practical}{9}{subsubsection.3.3.2}% +\contentsline {subsection}{\numberline {3.4}Feedback}{13}{subsection.3.4}% +\contentsline {subsection}{\numberline {3.5}Mixing linked lists and AST's}{14}{subsection.3.5}% diff --git a/comp/work/38/rejects b/comp/work/38/rejects new file mode 100644 index 0000000..9c564a6 --- /dev/null +++ b/comp/work/38/rejects @@ -0,0 +1 @@ +B, E, G diff --git a/electronics/asm/8.asm b/electronics/asm/8.asm new file mode 100644 index 0000000..387f4bd --- /dev/null +++ b/electronics/asm/8.asm @@ -0,0 +1,30 @@ +start: +init: + clrf PORTA ; make sure port A output latches are low + clrf PORTB ; make sure port B output latches are low + bsf STATUS, RP0 ; select memory bank 1 + movlw b'11111111' ; set port A data direction to inputs + movwf TRISA + movlw b'00000000' ; set port B data direction to outputs + movwf TRISB + bcf STATUS, RP0 ; select memory bank 0 + + bsf INTCON, INT0IE + bsf INTCON, GIE + + goto main + +interrupt: ; this will make port b go high for a set amount of time + movlw 255 + movwf PORTB + call wait1000ms + movlw 0 + movwf PORTB + + bcf INTCON, INT0IF + + retfie + +main: + goto main + END ; ends the program diff --git a/electronics/asm/8.err b/electronics/asm/8.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/electronics/asm/8.err diff --git a/electronics/asm/9.asm b/electronics/asm/9.asm new file mode 100644 index 0000000..51e93e1 --- /dev/null +++ b/electronics/asm/9.asm @@ -0,0 +1,21 @@ +start: +init: + clrf PORTA ; make sure port A output latches are low + clrf PORTB ; make sure port B output latches are low + bsf STATUS,RP0 ; select memory bank 1 + movlw b'11111111' ; set port A data direction to inputs + movwf TRISA + movlw b'00000000' ; set port B data direction to outputs + movwf TRISB + bcf STATUS,RP0 ; select memory bank 0 + goto main +main: + movlw b'11111111' + movwf PORTB + call wait1000ms + call wait1000ms + movlw b'00000000' + movwf PORTB + call wait1000ms + goto main + ;END ; ends the program diff --git a/electronics/asm/9.err b/electronics/asm/9.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/electronics/asm/9.err diff --git a/electronics/asm/\ b/electronics/asm/\ new file mode 100644 index 0000000..c86ca8e --- /dev/null +++ b/electronics/asm/\ @@ -0,0 +1,45 @@ +start: +init: + clrf PORTA ; make sure port A output latches are low + clrf PORTB ; make sure port B output latches are low + bsf STATUS,RP0 ; select memory bank 1 + movlw b'00000000' ; set port A data direction to inputs + movwf TRISA + movlw b'00001111' ; set port B data direction to outputs + movwf TRISB + bcf STATUS,RP0 ; select memory bank 0 + + ;stackptr EQU B10 + tmpdata EQU B9 + + goto main + +main: + ;movlw 0 + ;movwf stackptr + + movlw b'00000001' + movwf PORTA + + movlw b'10100000' ; move 1111 to the output + movwf PORTB + + movlw b'00000000' + movwf PORTA + + movlw b'11111111' + movwf TRISB + + movf PORTB, W + movwf tmpdata + + movlw b'00001111' + movwf TRISB + + swapf tmpdata, W + movwf PORTB + +noend: + goto noend + + END ; ends the program diff --git a/electronics/asm/cable.sh b/electronics/asm/cable.sh new file mode 100755 index 0000000..f435e0b --- /dev/null +++ b/electronics/asm/cable.sh @@ -0,0 +1,4 @@ +#!/bin/sh +sudo modprobe ftdi_sio +sudo chmod 777 /sys/bus/usb-serial/drivers/ftdi_sio/new_id +sudo echo "0403 bd90" > /sys/bus/usb-serial/drivers/ftdi_sio/new_id diff --git a/electronics/asm/mem.asm b/electronics/asm/mem.asm new file mode 100644 index 0000000..0c2d595 --- /dev/null +++ b/electronics/asm/mem.asm @@ -0,0 +1,27 @@ +start: +init: + clrf PORTA ; make sure port A output latches are low + clrf PORTB ; make sure port B output latches are low + bsf STATUS,RP0 ; select memory bank 1 + movlw b'11111111' ; set port A data direction to inputs + movwf TRISA + movlw b'00000000' ; set port B data direction to outputs + movwf TRISB + bcf STATUS,RP0 ; select memory bank 0 + goto main +;; for this program use the 2k 8 bit mem chip, with WE on B2, OE on B3, and the memorys 3 least +;; sig bits to B4-B6 (inclusive), all other pins on the mem chip need to be held low, and an led +;; needs to be on B1 +;; when B1 goes high move the 3 pins from the microcontroler to leds and see the value +main: + movlw b'01111000' + movwf PORTB ; make we high, oe low, and 3 pins high + call wait1000ms + + movlw b'00000110' + movwf PORTB ; make we low, oe high, and 3 pins low + +noend: + goto noend + + END ; ends the program diff --git a/electronics/asm/mem.ba~ b/electronics/asm/mem.ba~ new file mode 100644 index 0000000..62c8d54 --- /dev/null +++ b/electronics/asm/mem.ba~ @@ -0,0 +1,28 @@ +start:
+init:
+ clrf PORTA ; make sure port A output latches are low
+ clrf PORTB ; make sure port B output latches are low
+ bsf STATUS,RP0 ; select memory bank 1
+ movlw b'11111111' ; set port A data direction to inputs
+ movwf TRISA
+ movlw b'00000000' ; set port B data direction to outputs
+ movwf TRISB
+ bcf STATUS,RP0 ; select memory bank 0
+ goto main
+;; for this program use the 2k 8 bit mem chip, with WE on B2, OE on B3, and the memorys 3 least
+;; sig bits to B4-B6 (inclusive), all other pins on the mem chip need to be held low, and an led
+;; needs to be on B1
+;; when B1 goes high move the 3 pins from the microcontroler to leds and see the value
+main:
+ movlw b'01111000'
+ movwf PORTB ; make we high, oe low, and 3 pins high
+ call wait1000ms
+
+ movlw b'00000110'
+ movwf PORTB ; make we low, oe high, and 3 pins low
+
+noend:
+ goto noend
+
+ END ; ends the program
+
diff --git a/electronics/asm/mem.err b/electronics/asm/mem.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/electronics/asm/mem.err diff --git a/electronics/asm/stack.asm b/electronics/asm/stack.asm new file mode 100644 index 0000000..c86ca8e --- /dev/null +++ b/electronics/asm/stack.asm @@ -0,0 +1,45 @@ +start: +init: + clrf PORTA ; make sure port A output latches are low + clrf PORTB ; make sure port B output latches are low + bsf STATUS,RP0 ; select memory bank 1 + movlw b'00000000' ; set port A data direction to inputs + movwf TRISA + movlw b'00001111' ; set port B data direction to outputs + movwf TRISB + bcf STATUS,RP0 ; select memory bank 0 + + ;stackptr EQU B10 + tmpdata EQU B9 + + goto main + +main: + ;movlw 0 + ;movwf stackptr + + movlw b'00000001' + movwf PORTA + + movlw b'10100000' ; move 1111 to the output + movwf PORTB + + movlw b'00000000' + movwf PORTA + + movlw b'11111111' + movwf TRISB + + movf PORTB, W + movwf tmpdata + + movlw b'00001111' + movwf TRISB + + swapf tmpdata, W + movwf PORTB + +noend: + goto noend + + END ; ends the program diff --git a/electronics/asm/stack.err b/electronics/asm/stack.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/electronics/asm/stack.err |