diff --git a/.vscode/settings.json b/.vscode/settings.json index 0bcf4ea..56a836f 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,5 +1,131 @@ { "cSpell.words": [ + "caaaaaar", + "caaaaadr", + "caaaaar", + "caaaadar", + "caaaaddr", + "caaaadr", + "caaaar", + "caaadaar", + "caaadadr", + "caaadar", + "caaaddar", + "caaadddr", + "caaaddr", + "caaadr", + "caaar", + "caadaaar", + "caadaadr", + "caadaar", + "caadadar", + "caadaddr", + "caadadr", + "caadar", + "caaddaar", + "caaddadr", + "caaddar", + "caadddar", + "caaddddr", + "caadddr", + "caaddr", + "caadr", + "caar", + "cadaaaar", + "cadaaadr", + "cadaaar", + "cadaadar", + "cadaaddr", + "cadaadr", + "cadaar", + "cadadaar", + "cadadadr", + "cadadar", + "cadaddar", + "cadadddr", + "cadaddr", + "cadadr", + "cadar", + "caddaaar", + "caddaadr", + "caddaar", + "caddadar", + "caddaddr", + "caddadr", + "caddar", + "cadddaar", + "cadddadr", + "cadddar", + "caddddar", + "cadddddr", + "caddddr", + "cadddr", + "caddr", + "cadr", + "cdaaaaar", + "cdaaaadr", + "cdaaaar", + "cdaaadar", + "cdaaaddr", + "cdaaadr", + "cdaaar", + "cdaadaar", + "cdaadadr", + "cdaadar", + "cdaaddar", + "cdaadddr", + "cdaaddr", + "cdaadr", + "cdaar", + "cdadaaar", + "cdadaadr", + "cdadaar", + "cdadadar", + "cdadaddr", + "cdadadr", + "cdadar", + "cdaddaar", + "cdaddadr", + "cdaddar", + "cdadddar", + "cdaddddr", + "cdadddr", + "cdaddr", + "cdadr", + "cdar", + "cddaaaar", + "cddaaadr", + "cddaaar", + "cddaadar", + "cddaaddr", + "cddaadr", + "cddaar", + "cddadaar", + "cddadadr", + "cddadar", + "cddaddar", + "cddadddr", + "cddaddr", + "cddadr", + "cddar", + "cdddaaar", + "cdddaadr", + "cdddaar", + "cdddadar", + "cdddaddr", + "cdddadr", + "cdddar", + "cddddaar", + "cddddadr", + "cddddar", + "cdddddar", + "cddddddr", + "cdddddr", + "cddddr", + "cdddr", + "cddr", + "cxxxr", + "mkcxxxr", "stobject", "stthread", "stvm", diff --git a/cxxxr.h b/cxxxr.h new file mode 100644 index 0000000..851cc94 --- /dev/null +++ b/cxxxr.h @@ -0,0 +1,128 @@ +/* AUTO-GENERATED FILE */ +#include "tinobsy.hpp" +inline object*& car(object* x) { return x->car; } +inline object*& cdr(object* x) { return x->cdr; } +inline object*& caar(object* x) { return car(car(x)); } +inline object*& cadr(object* x) { return car(cdr(x)); } +inline object*& cdar(object* x) { return cdr(car(x)); } +inline object*& cddr(object* x) { return cdr(cdr(x)); } +inline object*& caaar(object* x) { return car(caar(x)); } +inline object*& caadr(object* x) { return car(cadr(x)); } +inline object*& cadar(object* x) { return car(cdar(x)); } +inline object*& caddr(object* x) { return car(cddr(x)); } +inline object*& cdaar(object* x) { return cdr(caar(x)); } +inline object*& cdadr(object* x) { return cdr(cadr(x)); } +inline object*& cddar(object* x) { return cdr(cdar(x)); } +inline object*& cdddr(object* x) { return cdr(cddr(x)); } +inline object*& caaaar(object* x) { return car(caaar(x)); } +inline object*& caaadr(object* x) { return car(caadr(x)); } +inline object*& caadar(object* x) { return car(cadar(x)); } +inline object*& caaddr(object* x) { return car(caddr(x)); } +inline object*& cadaar(object* x) { return car(cdaar(x)); } +inline object*& cadadr(object* x) { return car(cdadr(x)); } +inline object*& caddar(object* x) { return car(cddar(x)); } +inline object*& cadddr(object* x) { return car(cdddr(x)); } +inline object*& cdaaar(object* x) { return cdr(caaar(x)); } +inline object*& cdaadr(object* x) { return cdr(caadr(x)); } +inline object*& cdadar(object* x) { return cdr(cadar(x)); } +inline object*& cdaddr(object* x) { return cdr(caddr(x)); } +inline object*& cddaar(object* x) { return cdr(cdaar(x)); } +inline object*& cddadr(object* x) { return cdr(cdadr(x)); } +inline object*& cdddar(object* x) { return cdr(cddar(x)); } +inline object*& cddddr(object* x) { return cdr(cdddr(x)); } +inline object*& caaaaar(object* x) { return car(caaaar(x)); } +inline object*& caaaadr(object* x) { return car(caaadr(x)); } +inline object*& caaadar(object* x) { return car(caadar(x)); } +inline object*& caaaddr(object* x) { return car(caaddr(x)); } +inline object*& caadaar(object* x) { return car(cadaar(x)); } +inline object*& caadadr(object* x) { return car(cadadr(x)); } +inline object*& caaddar(object* x) { return car(caddar(x)); } +inline object*& caadddr(object* x) { return car(cadddr(x)); } +inline object*& cadaaar(object* x) { return car(cdaaar(x)); } +inline object*& cadaadr(object* x) { return car(cdaadr(x)); } +inline object*& cadadar(object* x) { return car(cdadar(x)); } +inline object*& cadaddr(object* x) { return car(cdaddr(x)); } +inline object*& caddaar(object* x) { return car(cddaar(x)); } +inline object*& caddadr(object* x) { return car(cddadr(x)); } +inline object*& cadddar(object* x) { return car(cdddar(x)); } +inline object*& caddddr(object* x) { return car(cddddr(x)); } +inline object*& cdaaaar(object* x) { return cdr(caaaar(x)); } +inline object*& cdaaadr(object* x) { return cdr(caaadr(x)); } +inline object*& cdaadar(object* x) { return cdr(caadar(x)); } +inline object*& cdaaddr(object* x) { return cdr(caaddr(x)); } +inline object*& cdadaar(object* x) { return cdr(cadaar(x)); } +inline object*& cdadadr(object* x) { return cdr(cadadr(x)); } +inline object*& cdaddar(object* x) { return cdr(caddar(x)); } +inline object*& cdadddr(object* x) { return cdr(cadddr(x)); } +inline object*& cddaaar(object* x) { return cdr(cdaaar(x)); } +inline object*& cddaadr(object* x) { return cdr(cdaadr(x)); } +inline object*& cddadar(object* x) { return cdr(cdadar(x)); } +inline object*& cddaddr(object* x) { return cdr(cdaddr(x)); } +inline object*& cdddaar(object* x) { return cdr(cddaar(x)); } +inline object*& cdddadr(object* x) { return cdr(cddadr(x)); } +inline object*& cddddar(object* x) { return cdr(cdddar(x)); } +inline object*& cdddddr(object* x) { return cdr(cddddr(x)); } +inline object*& caaaaaar(object* x) { return car(caaaaar(x)); } +inline object*& caaaaadr(object* x) { return car(caaaadr(x)); } +inline object*& caaaadar(object* x) { return car(caaadar(x)); } +inline object*& caaaaddr(object* x) { return car(caaaddr(x)); } +inline object*& caaadaar(object* x) { return car(caadaar(x)); } +inline object*& caaadadr(object* x) { return car(caadadr(x)); } +inline object*& caaaddar(object* x) { return car(caaddar(x)); } +inline object*& caaadddr(object* x) { return car(caadddr(x)); } +inline object*& caadaaar(object* x) { return car(cadaaar(x)); } +inline object*& caadaadr(object* x) { return car(cadaadr(x)); } +inline object*& caadadar(object* x) { return car(cadadar(x)); } +inline object*& caadaddr(object* x) { return car(cadaddr(x)); } +inline object*& caaddaar(object* x) { return car(caddaar(x)); } +inline object*& caaddadr(object* x) { return car(caddadr(x)); } +inline object*& caadddar(object* x) { return car(cadddar(x)); } +inline object*& caaddddr(object* x) { return car(caddddr(x)); } +inline object*& cadaaaar(object* x) { return car(cdaaaar(x)); } +inline object*& cadaaadr(object* x) { return car(cdaaadr(x)); } +inline object*& cadaadar(object* x) { return car(cdaadar(x)); } +inline object*& cadaaddr(object* x) { return car(cdaaddr(x)); } +inline object*& cadadaar(object* x) { return car(cdadaar(x)); } +inline object*& cadadadr(object* x) { return car(cdadadr(x)); } +inline object*& cadaddar(object* x) { return car(cdaddar(x)); } +inline object*& cadadddr(object* x) { return car(cdadddr(x)); } +inline object*& caddaaar(object* x) { return car(cddaaar(x)); } +inline object*& caddaadr(object* x) { return car(cddaadr(x)); } +inline object*& caddadar(object* x) { return car(cddadar(x)); } +inline object*& caddaddr(object* x) { return car(cddaddr(x)); } +inline object*& cadddaar(object* x) { return car(cdddaar(x)); } +inline object*& cadddadr(object* x) { return car(cdddadr(x)); } +inline object*& caddddar(object* x) { return car(cddddar(x)); } +inline object*& cadddddr(object* x) { return car(cdddddr(x)); } +inline object*& cdaaaaar(object* x) { return cdr(caaaaar(x)); } +inline object*& cdaaaadr(object* x) { return cdr(caaaadr(x)); } +inline object*& cdaaadar(object* x) { return cdr(caaadar(x)); } +inline object*& cdaaaddr(object* x) { return cdr(caaaddr(x)); } +inline object*& cdaadaar(object* x) { return cdr(caadaar(x)); } +inline object*& cdaadadr(object* x) { return cdr(caadadr(x)); } +inline object*& cdaaddar(object* x) { return cdr(caaddar(x)); } +inline object*& cdaadddr(object* x) { return cdr(caadddr(x)); } +inline object*& cdadaaar(object* x) { return cdr(cadaaar(x)); } +inline object*& cdadaadr(object* x) { return cdr(cadaadr(x)); } +inline object*& cdadadar(object* x) { return cdr(cadadar(x)); } +inline object*& cdadaddr(object* x) { return cdr(cadaddr(x)); } +inline object*& cdaddaar(object* x) { return cdr(caddaar(x)); } +inline object*& cdaddadr(object* x) { return cdr(caddadr(x)); } +inline object*& cdadddar(object* x) { return cdr(cadddar(x)); } +inline object*& cdaddddr(object* x) { return cdr(caddddr(x)); } +inline object*& cddaaaar(object* x) { return cdr(cdaaaar(x)); } +inline object*& cddaaadr(object* x) { return cdr(cdaaadr(x)); } +inline object*& cddaadar(object* x) { return cdr(cdaadar(x)); } +inline object*& cddaaddr(object* x) { return cdr(cdaaddr(x)); } +inline object*& cddadaar(object* x) { return cdr(cdadaar(x)); } +inline object*& cddadadr(object* x) { return cdr(cdadadr(x)); } +inline object*& cddaddar(object* x) { return cdr(cdaddar(x)); } +inline object*& cddadddr(object* x) { return cdr(cdadddr(x)); } +inline object*& cdddaaar(object* x) { return cdr(cddaaar(x)); } +inline object*& cdddaadr(object* x) { return cdr(cddaadr(x)); } +inline object*& cdddadar(object* x) { return cdr(cddadar(x)); } +inline object*& cdddaddr(object* x) { return cdr(cddaddr(x)); } +inline object*& cddddaar(object* x) { return cdr(cdddaar(x)); } +inline object*& cddddadr(object* x) { return cdr(cdddadr(x)); } +inline object*& cdddddar(object* x) { return cdr(cddddar(x)); } +inline object*& cddddddr(object* x) { return cdr(cdddddr(x)); } diff --git a/mkcxxxr.py b/mkcxxxr.py index 0f7d81a..da99cb2 100644 --- a/mkcxxxr.py +++ b/mkcxxxr.py @@ -1,9 +1,15 @@ +#! /usr/bin/env python + def mkcxxxr(n, bw): if bw == 1 and (n == 0 or n == 1): - return f"#define c{'ad'[n]}r(x) ((x)->c{'ad'[n]}r)" + return f"inline object*& c{'ad'[n]}r(object* x) {{ return x->c{'ad'[n]}r; }}" binstr = bin(n)[2:].rjust(bw, '0').replace('1', 'd').replace('0', 'a') - return f"#define c{binstr}r(x) c{binstr[0]}r(c{binstr[1:]}r(x))" + print("c" + binstr + "r") + return f"inline object*& c{binstr}r(object* x) {{ return c{binstr[0]}r(c{binstr[1:]}r(x)); }}" + -for bw in range(1, 7): - for n in range(2**bw): - print(mkcxxxr(n, bw)) +with open("cxxxr.h", "w") as f: + print('/* AUTO-GENERATED FILE */\n#include "tinobsy.hpp"', file=f) + for bw in range(1, 7): + for n in range(2**bw): + print(mkcxxxr(n, bw), file=f) diff --git a/test/out32.txt b/test/out32.txt index 4270f80..972fbcd 100644 --- a/test/out32.txt +++ b/test/out32.txt @@ -1,218 +1,218 @@ -[tinobsy_test.cpp:141-main] Begin Tinobsy test suite -[tinobsy_test.cpp:142-main] sizeof(object) = 20, sizeof(vm) = 20, sizeof(chunk) = 2564 +[main tinobsy_test.cpp:141] Begin Tinobsy test suite +[main tinobsy_test.cpp:142] sizeof(object) = 20, sizeof(vm) = 20, sizeof(chunk) = 2564 ------------------------------------------------------------- -[tinobsy_test.cpp:58-test_sweep] test mark-sweep collector: objects are swept when not put into a thread -[tinobsy.cpp:12-alloc] vm::alloc() a nil -[tinobsy.cpp:14-alloc] out of freespace, trying to expand chunk list... -[tinobsy.cpp:29-alloc] successfully added 1 chunk (128 objects) -[tinobsy.cpp:12-alloc] vm::alloc() a nil -[tinobsy.cpp:12-alloc] vm::alloc() a nil -[tinobsy.cpp:12-alloc] vm::alloc() a nil -[tinobsy.cpp:12-alloc] vm::alloc() a nil -[tinobsy.cpp:12-alloc] vm::alloc() a nil -[tinobsy.cpp:12-alloc] vm::alloc() a nil -[tinobsy_test.cpp:67-test_sweep] Begin sweep of everything -[tinobsy.cpp:68-gc] vm::gc() begin, 121 objects free / 128 objects total (1 chunks) { -[tinobsy.cpp:43-markobject] Marking NULL -[tinobsy.cpp:70-gc] garbage collect sweeping objects -[tinobsy.cpp:87-gc] Whole chunk is empty -[tinobsy.cpp:96-gc] } -[tinobsy.cpp:100-gc] vm::gc() after sweeping objects, 7 objects freed, 1 chunks freed -[tinobsy_test.cpp:69-test_sweep] Test succeeded: VM->freespace == oldobj +[test_sweep tinobsy_test.cpp:58] test mark-sweep collector: objects are swept when not put into a thread +[alloc tinobsy.cpp:12] vm::alloc() a nil +[alloc tinobsy.cpp:14] out of freespace, trying to expand chunk list... +[alloc tinobsy.cpp:29] successfully added 1 chunk (128 objects) +[alloc tinobsy.cpp:12] vm::alloc() a nil +[alloc tinobsy.cpp:12] vm::alloc() a nil +[alloc tinobsy.cpp:12] vm::alloc() a nil +[alloc tinobsy.cpp:12] vm::alloc() a nil +[alloc tinobsy.cpp:12] vm::alloc() a nil +[alloc tinobsy.cpp:12] vm::alloc() a nil +[test_sweep tinobsy_test.cpp:67] Begin sweep of everything +[gc tinobsy.cpp:68] vm::gc() begin, 121 objects free / 128 objects total (1 chunks) { +[markobject tinobsy.cpp:43] Marking NULL +[gc tinobsy.cpp:70] garbage collect sweeping objects +[gc tinobsy.cpp:87] Whole chunk is empty +[gc tinobsy.cpp:96] } +[gc tinobsy.cpp:100] vm::gc() after sweeping objects, 7 objects freed, 1 chunks freed +[test_sweep tinobsy_test.cpp:69] Test succeeded: VM->freespace == oldobj ------------------------------------------------------------- -[tinobsy_test.cpp:73-test_mark_no_sweep] test mark-sweep collector: objects aren't swept when marked on globals -[tinobsy.cpp:12-alloc] vm::alloc() a nil -[tinobsy.cpp:14-alloc] out of freespace, trying to expand chunk list... -[tinobsy.cpp:29-alloc] successfully added 1 chunk (128 objects) -[tinobsy.cpp:12-alloc] vm::alloc() a cons -[tinobsy.cpp:12-alloc] vm::alloc() a nil -[tinobsy.cpp:12-alloc] vm::alloc() a cons -[tinobsy.cpp:12-alloc] vm::alloc() a nil -[tinobsy.cpp:12-alloc] vm::alloc() a cons -[tinobsy.cpp:12-alloc] vm::alloc() a nil -[tinobsy.cpp:12-alloc] vm::alloc() a cons -[tinobsy.cpp:12-alloc] vm::alloc() a nil -[tinobsy.cpp:12-alloc] vm::alloc() a cons -[tinobsy.cpp:12-alloc] vm::alloc() a nil -[tinobsy.cpp:12-alloc] vm::alloc() a cons -[tinobsy.cpp:12-alloc] vm::alloc() a nil -[tinobsy.cpp:12-alloc] vm::alloc() a cons -[tinobsy.cpp:12-alloc] vm::alloc() a nil -[tinobsy.cpp:12-alloc] vm::alloc() a cons -[tinobsy.cpp:12-alloc] vm::alloc() a nil -[tinobsy.cpp:12-alloc] vm::alloc() a cons -[tinobsy.cpp:12-alloc] vm::alloc() a nil -[tinobsy.cpp:12-alloc] vm::alloc() a cons -[tinobsy.cpp:68-gc] vm::gc() begin, 108 objects free / 128 objects total (1 chunks) { -[tinobsy.cpp:57-markobject] Marking a cons -[tinobsy.cpp:57-markobject] Marking a nil -[tinobsy.cpp:59-markobject] No MARK pointer, returning... -[tinobsy.cpp:57-markobject] Marking a cons -[tinobsy.cpp:57-markobject] Marking a nil -[tinobsy.cpp:59-markobject] No MARK pointer, returning... -[tinobsy.cpp:57-markobject] Marking a cons -[tinobsy.cpp:57-markobject] Marking a nil -[tinobsy.cpp:59-markobject] No MARK pointer, returning... -[tinobsy.cpp:57-markobject] Marking a cons -[tinobsy.cpp:57-markobject] Marking a nil -[tinobsy.cpp:59-markobject] No MARK pointer, returning... -[tinobsy.cpp:57-markobject] Marking a cons -[tinobsy.cpp:57-markobject] Marking a nil -[tinobsy.cpp:59-markobject] No MARK pointer, returning... -[tinobsy.cpp:57-markobject] Marking a cons -[tinobsy.cpp:57-markobject] Marking a nil -[tinobsy.cpp:59-markobject] No MARK pointer, returning... -[tinobsy.cpp:57-markobject] Marking a cons -[tinobsy.cpp:57-markobject] Marking a nil -[tinobsy.cpp:59-markobject] No MARK pointer, returning... -[tinobsy.cpp:57-markobject] Marking a cons -[tinobsy.cpp:57-markobject] Marking a nil -[tinobsy.cpp:59-markobject] No MARK pointer, returning... -[tinobsy.cpp:57-markobject] Marking a cons -[tinobsy.cpp:57-markobject] Marking a nil -[tinobsy.cpp:59-markobject] No MARK pointer, returning... -[tinobsy.cpp:57-markobject] Marking a cons -[tinobsy.cpp:57-markobject] Marking a nil -[tinobsy.cpp:59-markobject] No MARK pointer, returning... -[tinobsy.cpp:43-markobject] Marking NULL -[tinobsy.cpp:70-gc] garbage collect sweeping objects -[tinobsy.cpp:96-gc] } -[tinobsy.cpp:100-gc] vm::gc() after sweeping objects, 0 objects freed, 0 chunks freed -[tinobsy_test.cpp:80-test_mark_no_sweep] Test succeeded: VM->freespace == oldobj +[test_mark_no_sweep tinobsy_test.cpp:73] test mark-sweep collector: objects aren't swept when marked on globals +[alloc tinobsy.cpp:12] vm::alloc() a nil +[alloc tinobsy.cpp:14] out of freespace, trying to expand chunk list... +[alloc tinobsy.cpp:29] successfully added 1 chunk (128 objects) +[alloc tinobsy.cpp:12] vm::alloc() a cons +[alloc tinobsy.cpp:12] vm::alloc() a nil +[alloc tinobsy.cpp:12] vm::alloc() a cons +[alloc tinobsy.cpp:12] vm::alloc() a nil +[alloc tinobsy.cpp:12] vm::alloc() a cons +[alloc tinobsy.cpp:12] vm::alloc() a nil +[alloc tinobsy.cpp:12] vm::alloc() a cons +[alloc tinobsy.cpp:12] vm::alloc() a nil +[alloc tinobsy.cpp:12] vm::alloc() a cons +[alloc tinobsy.cpp:12] vm::alloc() a nil +[alloc tinobsy.cpp:12] vm::alloc() a cons +[alloc tinobsy.cpp:12] vm::alloc() a nil +[alloc tinobsy.cpp:12] vm::alloc() a cons +[alloc tinobsy.cpp:12] vm::alloc() a nil +[alloc tinobsy.cpp:12] vm::alloc() a cons +[alloc tinobsy.cpp:12] vm::alloc() a nil +[alloc tinobsy.cpp:12] vm::alloc() a cons +[alloc tinobsy.cpp:12] vm::alloc() a nil +[alloc tinobsy.cpp:12] vm::alloc() a cons +[gc tinobsy.cpp:68] vm::gc() begin, 108 objects free / 128 objects total (1 chunks) { +[markobject tinobsy.cpp:57] Marking a cons +[markobject tinobsy.cpp:57] Marking a nil +[markobject tinobsy.cpp:59] No MARK pointer, returning... +[markobject tinobsy.cpp:57] Marking a cons +[markobject tinobsy.cpp:57] Marking a nil +[markobject tinobsy.cpp:59] No MARK pointer, returning... +[markobject tinobsy.cpp:57] Marking a cons +[markobject tinobsy.cpp:57] Marking a nil +[markobject tinobsy.cpp:59] No MARK pointer, returning... +[markobject tinobsy.cpp:57] Marking a cons +[markobject tinobsy.cpp:57] Marking a nil +[markobject tinobsy.cpp:59] No MARK pointer, returning... +[markobject tinobsy.cpp:57] Marking a cons +[markobject tinobsy.cpp:57] Marking a nil +[markobject tinobsy.cpp:59] No MARK pointer, returning... +[markobject tinobsy.cpp:57] Marking a cons +[markobject tinobsy.cpp:57] Marking a nil +[markobject tinobsy.cpp:59] No MARK pointer, returning... +[markobject tinobsy.cpp:57] Marking a cons +[markobject tinobsy.cpp:57] Marking a nil +[markobject tinobsy.cpp:59] No MARK pointer, returning... +[markobject tinobsy.cpp:57] Marking a cons +[markobject tinobsy.cpp:57] Marking a nil +[markobject tinobsy.cpp:59] No MARK pointer, returning... +[markobject tinobsy.cpp:57] Marking a cons +[markobject tinobsy.cpp:57] Marking a nil +[markobject tinobsy.cpp:59] No MARK pointer, returning... +[markobject tinobsy.cpp:57] Marking a cons +[markobject tinobsy.cpp:57] Marking a nil +[markobject tinobsy.cpp:59] No MARK pointer, returning... +[markobject tinobsy.cpp:43] Marking NULL +[gc tinobsy.cpp:70] garbage collect sweeping objects +[gc tinobsy.cpp:96] } +[gc tinobsy.cpp:100] vm::gc() after sweeping objects, 0 objects freed, 0 chunks freed +[test_mark_no_sweep tinobsy_test.cpp:80] Test succeeded: VM->freespace == oldobj ------------------------------------------------------------- -[tinobsy_test.cpp:88-test_freeing_things] Test owned pointers are freed -[tinobsy_test.cpp:92-test_freeing_things] Random atom is ttpmqwdrafronvzxwoanxaeyyvvvwcdiqbuenxyopaloigeangolwdmuonrpzkz -[tinobsy.cpp:12-alloc] vm::alloc() a atom -[tinobsy_test.cpp:92-test_freeing_things] Random atom is cjmnjvyqylzfwpjsiucmiiqjhnzwxdxhtchxkcxbhhdjnerysnulyiovirbwkzz -[tinobsy.cpp:12-alloc] vm::alloc() a atom -[tinobsy_test.cpp:92-test_freeing_things] Random atom is chohoydivwxdenkpphjevmazujlaigyyyfvfcockdhugfbbmhhwsgfubrwpfhgl -[tinobsy.cpp:12-alloc] vm::alloc() a atom -[tinobsy_test.cpp:92-test_freeing_things] Random atom is xrgpqmtlscqwsmqaglsquqoyupjcntflareatothuulkucwxfgvzjywvgkkfnui -[tinobsy.cpp:12-alloc] vm::alloc() a atom -[tinobsy_test.cpp:92-test_freeing_things] Random atom is adpvjxroqpqkhcxaoautqsimqqlhqmvasoireastcdbspkcxrrqrkitkpbuantx -[tinobsy.cpp:12-alloc] vm::alloc() a atom -[tinobsy_test.cpp:92-test_freeing_things] Random atom is sdrgghqlsgknmoczfnckhtbogvjnxcxipqvnhnlegaqfxbpovuwfsqnmbjbkfzm -[tinobsy.cpp:12-alloc] vm::alloc() a atom -[tinobsy_test.cpp:92-test_freeing_things] Random atom is bzbbsbkfswjqnfsoslpwypwtokrqynwtlqwrbllavadvqqtfxhgmqkyppapjodx -[tinobsy.cpp:12-alloc] vm::alloc() a atom -[tinobsy_test.cpp:92-test_freeing_things] Random atom is qdbysknbfappasfqytjtyosgkcmptsytmeddzdppvxxpuopsgmlzpriewusyzls -[tinobsy.cpp:12-alloc] vm::alloc() a atom -[tinobsy_test.cpp:92-test_freeing_things] Random atom is xxbujpkwodckxyeyxrmffybhurrsmcnzlveaicskiuowgdpojabyhxxcqbumcix -[tinobsy.cpp:12-alloc] vm::alloc() a atom -[tinobsy_test.cpp:92-test_freeing_things] Random atom is fynbdxotrjgytrjgcqdqjuvfuxvihretoqwvvsqqwkiovbvkmokkkfympwiqtst -[tinobsy.cpp:12-alloc] vm::alloc() a atom -[tinobsy.cpp:68-gc] vm::gc() begin, 98 objects free / 128 objects total (1 chunks) { -[tinobsy.cpp:57-markobject] Marking a cons -[tinobsy.cpp:57-markobject] Marking a nil -[tinobsy.cpp:59-markobject] No MARK pointer, returning... -[tinobsy.cpp:57-markobject] Marking a cons -[tinobsy.cpp:57-markobject] Marking a nil -[tinobsy.cpp:59-markobject] No MARK pointer, returning... -[tinobsy.cpp:57-markobject] Marking a cons -[tinobsy.cpp:57-markobject] Marking a nil -[tinobsy.cpp:59-markobject] No MARK pointer, returning... -[tinobsy.cpp:57-markobject] Marking a cons -[tinobsy.cpp:57-markobject] Marking a nil -[tinobsy.cpp:59-markobject] No MARK pointer, returning... -[tinobsy.cpp:57-markobject] Marking a cons -[tinobsy.cpp:57-markobject] Marking a nil -[tinobsy.cpp:59-markobject] No MARK pointer, returning... -[tinobsy.cpp:57-markobject] Marking a cons -[tinobsy.cpp:57-markobject] Marking a nil -[tinobsy.cpp:59-markobject] No MARK pointer, returning... -[tinobsy.cpp:57-markobject] Marking a cons -[tinobsy.cpp:57-markobject] Marking a nil -[tinobsy.cpp:59-markobject] No MARK pointer, returning... -[tinobsy.cpp:57-markobject] Marking a cons -[tinobsy.cpp:57-markobject] Marking a nil -[tinobsy.cpp:59-markobject] No MARK pointer, returning... -[tinobsy.cpp:57-markobject] Marking a cons -[tinobsy.cpp:57-markobject] Marking a nil -[tinobsy.cpp:59-markobject] No MARK pointer, returning... -[tinobsy.cpp:57-markobject] Marking a cons -[tinobsy.cpp:57-markobject] Marking a nil -[tinobsy.cpp:59-markobject] No MARK pointer, returning... -[tinobsy.cpp:43-markobject] Marking NULL -[tinobsy.cpp:70-gc] garbage collect sweeping objects -[tinobsy.cpp:96-gc] } -[tinobsy.cpp:100-gc] vm::gc() after sweeping objects, 10 objects freed, 0 chunks freed -[tinobsy_test.cpp:97-test_freeing_things] Check Valgrind output to make sure stuff was freed +[test_freeing_things tinobsy_test.cpp:88] Test owned pointers are freed +[test_freeing_things tinobsy_test.cpp:92] Random atom is aiudxsguyqsrvicgczqekbgvjbuwagkvcbaksnqjwscbxzfhdfzrdoweioyzvbk +[alloc tinobsy.cpp:12] vm::alloc() a atom +[test_freeing_things tinobsy_test.cpp:92] Random atom is zvwapedwrmbezjhatttildovzlwdjqrpmuvoooasophrwugyaldtuvqwktfitlz +[alloc tinobsy.cpp:12] vm::alloc() a atom +[test_freeing_things tinobsy_test.cpp:92] Random atom is rqkdpwnvspdhalyhybrsywdullcevfbqhggnhgbrbslprbnavrvwtaimetwnzqq +[alloc tinobsy.cpp:12] vm::alloc() a atom +[test_freeing_things tinobsy_test.cpp:92] Random atom is ogjpyuuoykegvwdpbhyqvkpczfnzunvhggnccuuqmakcdytscsgzebgcfghcgfd +[alloc tinobsy.cpp:12] vm::alloc() a atom +[test_freeing_things tinobsy_test.cpp:92] Random atom is ewdmnlywkllhtbzhxyyfirrylkvfypqpagpsijdqothgwpunjssmjhtaoqnjsqm +[alloc tinobsy.cpp:12] vm::alloc() a atom +[test_freeing_things tinobsy_test.cpp:92] Random atom is ngapbrcnfmfeenoegcggdyxvhbvyonyohkkdxgdohqdlqvvhkdyykmtpnqgiwch +[alloc tinobsy.cpp:12] vm::alloc() a atom +[test_freeing_things tinobsy_test.cpp:92] Random atom is jfptpbkzfzyizwrazjkqpztxkypqoulncweyqcnfjuvaievexgryiiqqgswnkzv +[alloc tinobsy.cpp:12] vm::alloc() a atom +[test_freeing_things tinobsy_test.cpp:92] Random atom is hvwxvnxdheawddbgofzgvrjbzwqlxcjskkihleriugoleipscewkikjwxjzjfse +[alloc tinobsy.cpp:12] vm::alloc() a atom +[test_freeing_things tinobsy_test.cpp:92] Random atom is typvbfmtxfgdlccrlqudimeazcypokfhvbszdamuqfclalbrxrhetzgbjxomfvj +[alloc tinobsy.cpp:12] vm::alloc() a atom +[test_freeing_things tinobsy_test.cpp:92] Random atom is pcwtifyjhlsityuiqsnthxlgagbswcwdltlmlbkpktkvamydfujeqakawjvefmk +[alloc tinobsy.cpp:12] vm::alloc() a atom +[gc tinobsy.cpp:68] vm::gc() begin, 98 objects free / 128 objects total (1 chunks) { +[markobject tinobsy.cpp:57] Marking a cons +[markobject tinobsy.cpp:57] Marking a nil +[markobject tinobsy.cpp:59] No MARK pointer, returning... +[markobject tinobsy.cpp:57] Marking a cons +[markobject tinobsy.cpp:57] Marking a nil +[markobject tinobsy.cpp:59] No MARK pointer, returning... +[markobject tinobsy.cpp:57] Marking a cons +[markobject tinobsy.cpp:57] Marking a nil +[markobject tinobsy.cpp:59] No MARK pointer, returning... +[markobject tinobsy.cpp:57] Marking a cons +[markobject tinobsy.cpp:57] Marking a nil +[markobject tinobsy.cpp:59] No MARK pointer, returning... +[markobject tinobsy.cpp:57] Marking a cons +[markobject tinobsy.cpp:57] Marking a nil +[markobject tinobsy.cpp:59] No MARK pointer, returning... +[markobject tinobsy.cpp:57] Marking a cons +[markobject tinobsy.cpp:57] Marking a nil +[markobject tinobsy.cpp:59] No MARK pointer, returning... +[markobject tinobsy.cpp:57] Marking a cons +[markobject tinobsy.cpp:57] Marking a nil +[markobject tinobsy.cpp:59] No MARK pointer, returning... +[markobject tinobsy.cpp:57] Marking a cons +[markobject tinobsy.cpp:57] Marking a nil +[markobject tinobsy.cpp:59] No MARK pointer, returning... +[markobject tinobsy.cpp:57] Marking a cons +[markobject tinobsy.cpp:57] Marking a nil +[markobject tinobsy.cpp:59] No MARK pointer, returning... +[markobject tinobsy.cpp:57] Marking a cons +[markobject tinobsy.cpp:57] Marking a nil +[markobject tinobsy.cpp:59] No MARK pointer, returning... +[markobject tinobsy.cpp:43] Marking NULL +[gc tinobsy.cpp:70] garbage collect sweeping objects +[gc tinobsy.cpp:96] } +[gc tinobsy.cpp:100] vm::gc() after sweeping objects, 10 objects freed, 0 chunks freed +[test_freeing_things tinobsy_test.cpp:97] Check Valgrind output to make sure stuff was freed ------------------------------------------------------------- -[tinobsy_test.cpp:101-test_reference_cycle] Test unreachable reference cycle gets collected -[tinobsy.cpp:12-alloc] vm::alloc() a cons -[tinobsy.cpp:68-gc] vm::gc() begin, 107 objects free / 128 objects total (1 chunks) { -[tinobsy.cpp:57-markobject] Marking a cons -[tinobsy.cpp:57-markobject] Marking a nil -[tinobsy.cpp:59-markobject] No MARK pointer, returning... -[tinobsy.cpp:57-markobject] Marking a cons -[tinobsy.cpp:57-markobject] Marking a nil -[tinobsy.cpp:59-markobject] No MARK pointer, returning... -[tinobsy.cpp:57-markobject] Marking a cons -[tinobsy.cpp:57-markobject] Marking a nil -[tinobsy.cpp:59-markobject] No MARK pointer, returning... -[tinobsy.cpp:57-markobject] Marking a cons -[tinobsy.cpp:57-markobject] Marking a nil -[tinobsy.cpp:59-markobject] No MARK pointer, returning... -[tinobsy.cpp:57-markobject] Marking a cons -[tinobsy.cpp:57-markobject] Marking a nil -[tinobsy.cpp:59-markobject] No MARK pointer, returning... -[tinobsy.cpp:57-markobject] Marking a cons -[tinobsy.cpp:57-markobject] Marking a nil -[tinobsy.cpp:59-markobject] No MARK pointer, returning... -[tinobsy.cpp:57-markobject] Marking a cons -[tinobsy.cpp:57-markobject] Marking a nil -[tinobsy.cpp:59-markobject] No MARK pointer, returning... -[tinobsy.cpp:57-markobject] Marking a cons -[tinobsy.cpp:57-markobject] Marking a nil -[tinobsy.cpp:59-markobject] No MARK pointer, returning... -[tinobsy.cpp:57-markobject] Marking a cons -[tinobsy.cpp:57-markobject] Marking a nil -[tinobsy.cpp:59-markobject] No MARK pointer, returning... -[tinobsy.cpp:57-markobject] Marking a cons -[tinobsy.cpp:57-markobject] Marking a nil -[tinobsy.cpp:59-markobject] No MARK pointer, returning... -[tinobsy.cpp:43-markobject] Marking NULL -[tinobsy.cpp:70-gc] garbage collect sweeping objects -[tinobsy.cpp:96-gc] } -[tinobsy.cpp:100-gc] vm::gc() after sweeping objects, 1 objects freed, 0 chunks freed -[tinobsy_test.cpp:106-test_reference_cycle] Test succeeded: VM->freespace == oldobj +[test_reference_cycle tinobsy_test.cpp:101] Test unreachable reference cycle gets collected +[alloc tinobsy.cpp:12] vm::alloc() a cons +[gc tinobsy.cpp:68] vm::gc() begin, 107 objects free / 128 objects total (1 chunks) { +[markobject tinobsy.cpp:57] Marking a cons +[markobject tinobsy.cpp:57] Marking a nil +[markobject tinobsy.cpp:59] No MARK pointer, returning... +[markobject tinobsy.cpp:57] Marking a cons +[markobject tinobsy.cpp:57] Marking a nil +[markobject tinobsy.cpp:59] No MARK pointer, returning... +[markobject tinobsy.cpp:57] Marking a cons +[markobject tinobsy.cpp:57] Marking a nil +[markobject tinobsy.cpp:59] No MARK pointer, returning... +[markobject tinobsy.cpp:57] Marking a cons +[markobject tinobsy.cpp:57] Marking a nil +[markobject tinobsy.cpp:59] No MARK pointer, returning... +[markobject tinobsy.cpp:57] Marking a cons +[markobject tinobsy.cpp:57] Marking a nil +[markobject tinobsy.cpp:59] No MARK pointer, returning... +[markobject tinobsy.cpp:57] Marking a cons +[markobject tinobsy.cpp:57] Marking a nil +[markobject tinobsy.cpp:59] No MARK pointer, returning... +[markobject tinobsy.cpp:57] Marking a cons +[markobject tinobsy.cpp:57] Marking a nil +[markobject tinobsy.cpp:59] No MARK pointer, returning... +[markobject tinobsy.cpp:57] Marking a cons +[markobject tinobsy.cpp:57] Marking a nil +[markobject tinobsy.cpp:59] No MARK pointer, returning... +[markobject tinobsy.cpp:57] Marking a cons +[markobject tinobsy.cpp:57] Marking a nil +[markobject tinobsy.cpp:59] No MARK pointer, returning... +[markobject tinobsy.cpp:57] Marking a cons +[markobject tinobsy.cpp:57] Marking a nil +[markobject tinobsy.cpp:59] No MARK pointer, returning... +[markobject tinobsy.cpp:43] Marking NULL +[gc tinobsy.cpp:70] garbage collect sweeping objects +[gc tinobsy.cpp:96] } +[gc tinobsy.cpp:100] vm::gc() after sweeping objects, 1 objects freed, 0 chunks freed +[test_reference_cycle tinobsy_test.cpp:106] Test succeeded: VM->freespace == oldobj ------------------------------------------------------------- -[tinobsy_test.cpp:119-test_interning] Test primitives are interned -[tinobsy.cpp:12-alloc] vm::alloc() a int -[tinobsy_test.cpp:122-test_interning] Assertion succeeded: a->as_big_int == 47 -[tinobsy.cpp:134-get_existing_object] found equal object -[tinobsy_test.cpp:125-test_interning] Test succeeded: a == b -[tinobsy.cpp:134-get_existing_object] found equal object -[tinobsy_test.cpp:125-test_interning] Test succeeded: a == b -[tinobsy.cpp:134-get_existing_object] found equal object -[tinobsy_test.cpp:125-test_interning] Test succeeded: a == b -[tinobsy.cpp:134-get_existing_object] found equal object -[tinobsy_test.cpp:125-test_interning] Test succeeded: a == b -[tinobsy.cpp:134-get_existing_object] found equal object -[tinobsy_test.cpp:125-test_interning] Test succeeded: a == b -[tinobsy.cpp:134-get_existing_object] found equal object -[tinobsy_test.cpp:125-test_interning] Test succeeded: a == b -[tinobsy.cpp:134-get_existing_object] found equal object -[tinobsy_test.cpp:125-test_interning] Test succeeded: a == b -[tinobsy.cpp:134-get_existing_object] found equal object -[tinobsy_test.cpp:125-test_interning] Test succeeded: a == b -[tinobsy.cpp:134-get_existing_object] found equal object -[tinobsy_test.cpp:125-test_interning] Test succeeded: a == b -[tinobsy.cpp:134-get_existing_object] found equal object -[tinobsy_test.cpp:125-test_interning] Test succeeded: a == b +[test_interning tinobsy_test.cpp:119] Test primitives are interned +[alloc tinobsy.cpp:12] vm::alloc() a int +[test_interning tinobsy_test.cpp:122] Assertion succeeded: a->as_big_int == 47 +[get_existing_object tinobsy.cpp:134] found equal object +[test_interning tinobsy_test.cpp:125] Test succeeded: a == b +[get_existing_object tinobsy.cpp:134] found equal object +[test_interning tinobsy_test.cpp:125] Test succeeded: a == b +[get_existing_object tinobsy.cpp:134] found equal object +[test_interning tinobsy_test.cpp:125] Test succeeded: a == b +[get_existing_object tinobsy.cpp:134] found equal object +[test_interning tinobsy_test.cpp:125] Test succeeded: a == b +[get_existing_object tinobsy.cpp:134] found equal object +[test_interning tinobsy_test.cpp:125] Test succeeded: a == b +[get_existing_object tinobsy.cpp:134] found equal object +[test_interning tinobsy_test.cpp:125] Test succeeded: a == b +[get_existing_object tinobsy.cpp:134] found equal object +[test_interning tinobsy_test.cpp:125] Test succeeded: a == b +[get_existing_object tinobsy.cpp:134] found equal object +[test_interning tinobsy_test.cpp:125] Test succeeded: a == b +[get_existing_object tinobsy.cpp:134] found equal object +[test_interning tinobsy_test.cpp:125] Test succeeded: a == b +[get_existing_object tinobsy.cpp:134] found equal object +[test_interning tinobsy_test.cpp:125] Test succeeded: a == b ------------------------------------------------------------- -[tinobsy_test.cpp:149-main] end of tests. Total 0 fails -[tinobsy.cpp:114-~vm] vm::~vm() { -[tinobsy.cpp:123-~vm] } +[main tinobsy_test.cpp:149] end of tests. Total 0 fails +[~vm tinobsy.cpp:114] vm::~vm() { +[~vm tinobsy.cpp:123] } diff --git a/test/out64.txt b/test/out64.txt index 79927d1..c2478f2 100644 --- a/test/out64.txt +++ b/test/out64.txt @@ -1,218 +1,218 @@ -[tinobsy_test.cpp:141-main] Begin Tinobsy test suite -[tinobsy_test.cpp:142-main] sizeof(object) = 32, sizeof(vm) = 40, sizeof(chunk) = 4104 +[main tinobsy_test.cpp:141] Begin Tinobsy test suite +[main tinobsy_test.cpp:142] sizeof(object) = 32, sizeof(vm) = 40, sizeof(chunk) = 4104 ------------------------------------------------------------- -[tinobsy_test.cpp:58-test_sweep] test mark-sweep collector: objects are swept when not put into a thread -[tinobsy.cpp:12-alloc] vm::alloc() a nil -[tinobsy.cpp:14-alloc] out of freespace, trying to expand chunk list... -[tinobsy.cpp:29-alloc] successfully added 1 chunk (128 objects) -[tinobsy.cpp:12-alloc] vm::alloc() a nil -[tinobsy.cpp:12-alloc] vm::alloc() a nil -[tinobsy.cpp:12-alloc] vm::alloc() a nil -[tinobsy.cpp:12-alloc] vm::alloc() a nil -[tinobsy.cpp:12-alloc] vm::alloc() a nil -[tinobsy.cpp:12-alloc] vm::alloc() a nil -[tinobsy_test.cpp:67-test_sweep] Begin sweep of everything -[tinobsy.cpp:68-gc] vm::gc() begin, 121 objects free / 128 objects total (1 chunks) { -[tinobsy.cpp:43-markobject] Marking NULL -[tinobsy.cpp:70-gc] garbage collect sweeping objects -[tinobsy.cpp:87-gc] Whole chunk is empty -[tinobsy.cpp:96-gc] } -[tinobsy.cpp:100-gc] vm::gc() after sweeping objects, 7 objects freed, 1 chunks freed -[tinobsy_test.cpp:69-test_sweep] Test succeeded: VM->freespace == oldobj +[test_sweep tinobsy_test.cpp:58] test mark-sweep collector: objects are swept when not put into a thread +[alloc tinobsy.cpp:12] vm::alloc() a nil +[alloc tinobsy.cpp:14] out of freespace, trying to expand chunk list... +[alloc tinobsy.cpp:29] successfully added 1 chunk (128 objects) +[alloc tinobsy.cpp:12] vm::alloc() a nil +[alloc tinobsy.cpp:12] vm::alloc() a nil +[alloc tinobsy.cpp:12] vm::alloc() a nil +[alloc tinobsy.cpp:12] vm::alloc() a nil +[alloc tinobsy.cpp:12] vm::alloc() a nil +[alloc tinobsy.cpp:12] vm::alloc() a nil +[test_sweep tinobsy_test.cpp:67] Begin sweep of everything +[gc tinobsy.cpp:68] vm::gc() begin, 121 objects free / 128 objects total (1 chunks) { +[markobject tinobsy.cpp:43] Marking NULL +[gc tinobsy.cpp:70] garbage collect sweeping objects +[gc tinobsy.cpp:87] Whole chunk is empty +[gc tinobsy.cpp:96] } +[gc tinobsy.cpp:100] vm::gc() after sweeping objects, 7 objects freed, 1 chunks freed +[test_sweep tinobsy_test.cpp:69] Test succeeded: VM->freespace == oldobj ------------------------------------------------------------- -[tinobsy_test.cpp:73-test_mark_no_sweep] test mark-sweep collector: objects aren't swept when marked on globals -[tinobsy.cpp:12-alloc] vm::alloc() a nil -[tinobsy.cpp:14-alloc] out of freespace, trying to expand chunk list... -[tinobsy.cpp:29-alloc] successfully added 1 chunk (128 objects) -[tinobsy.cpp:12-alloc] vm::alloc() a cons -[tinobsy.cpp:12-alloc] vm::alloc() a nil -[tinobsy.cpp:12-alloc] vm::alloc() a cons -[tinobsy.cpp:12-alloc] vm::alloc() a nil -[tinobsy.cpp:12-alloc] vm::alloc() a cons -[tinobsy.cpp:12-alloc] vm::alloc() a nil -[tinobsy.cpp:12-alloc] vm::alloc() a cons -[tinobsy.cpp:12-alloc] vm::alloc() a nil -[tinobsy.cpp:12-alloc] vm::alloc() a cons -[tinobsy.cpp:12-alloc] vm::alloc() a nil -[tinobsy.cpp:12-alloc] vm::alloc() a cons -[tinobsy.cpp:12-alloc] vm::alloc() a nil -[tinobsy.cpp:12-alloc] vm::alloc() a cons -[tinobsy.cpp:12-alloc] vm::alloc() a nil -[tinobsy.cpp:12-alloc] vm::alloc() a cons -[tinobsy.cpp:12-alloc] vm::alloc() a nil -[tinobsy.cpp:12-alloc] vm::alloc() a cons -[tinobsy.cpp:12-alloc] vm::alloc() a nil -[tinobsy.cpp:12-alloc] vm::alloc() a cons -[tinobsy.cpp:68-gc] vm::gc() begin, 108 objects free / 128 objects total (1 chunks) { -[tinobsy.cpp:57-markobject] Marking a cons -[tinobsy.cpp:57-markobject] Marking a nil -[tinobsy.cpp:59-markobject] No MARK pointer, returning... -[tinobsy.cpp:57-markobject] Marking a cons -[tinobsy.cpp:57-markobject] Marking a nil -[tinobsy.cpp:59-markobject] No MARK pointer, returning... -[tinobsy.cpp:57-markobject] Marking a cons -[tinobsy.cpp:57-markobject] Marking a nil -[tinobsy.cpp:59-markobject] No MARK pointer, returning... -[tinobsy.cpp:57-markobject] Marking a cons -[tinobsy.cpp:57-markobject] Marking a nil -[tinobsy.cpp:59-markobject] No MARK pointer, returning... -[tinobsy.cpp:57-markobject] Marking a cons -[tinobsy.cpp:57-markobject] Marking a nil -[tinobsy.cpp:59-markobject] No MARK pointer, returning... -[tinobsy.cpp:57-markobject] Marking a cons -[tinobsy.cpp:57-markobject] Marking a nil -[tinobsy.cpp:59-markobject] No MARK pointer, returning... -[tinobsy.cpp:57-markobject] Marking a cons -[tinobsy.cpp:57-markobject] Marking a nil -[tinobsy.cpp:59-markobject] No MARK pointer, returning... -[tinobsy.cpp:57-markobject] Marking a cons -[tinobsy.cpp:57-markobject] Marking a nil -[tinobsy.cpp:59-markobject] No MARK pointer, returning... -[tinobsy.cpp:57-markobject] Marking a cons -[tinobsy.cpp:57-markobject] Marking a nil -[tinobsy.cpp:59-markobject] No MARK pointer, returning... -[tinobsy.cpp:57-markobject] Marking a cons -[tinobsy.cpp:57-markobject] Marking a nil -[tinobsy.cpp:59-markobject] No MARK pointer, returning... -[tinobsy.cpp:43-markobject] Marking NULL -[tinobsy.cpp:70-gc] garbage collect sweeping objects -[tinobsy.cpp:96-gc] } -[tinobsy.cpp:100-gc] vm::gc() after sweeping objects, 0 objects freed, 0 chunks freed -[tinobsy_test.cpp:80-test_mark_no_sweep] Test succeeded: VM->freespace == oldobj +[test_mark_no_sweep tinobsy_test.cpp:73] test mark-sweep collector: objects aren't swept when marked on globals +[alloc tinobsy.cpp:12] vm::alloc() a nil +[alloc tinobsy.cpp:14] out of freespace, trying to expand chunk list... +[alloc tinobsy.cpp:29] successfully added 1 chunk (128 objects) +[alloc tinobsy.cpp:12] vm::alloc() a cons +[alloc tinobsy.cpp:12] vm::alloc() a nil +[alloc tinobsy.cpp:12] vm::alloc() a cons +[alloc tinobsy.cpp:12] vm::alloc() a nil +[alloc tinobsy.cpp:12] vm::alloc() a cons +[alloc tinobsy.cpp:12] vm::alloc() a nil +[alloc tinobsy.cpp:12] vm::alloc() a cons +[alloc tinobsy.cpp:12] vm::alloc() a nil +[alloc tinobsy.cpp:12] vm::alloc() a cons +[alloc tinobsy.cpp:12] vm::alloc() a nil +[alloc tinobsy.cpp:12] vm::alloc() a cons +[alloc tinobsy.cpp:12] vm::alloc() a nil +[alloc tinobsy.cpp:12] vm::alloc() a cons +[alloc tinobsy.cpp:12] vm::alloc() a nil +[alloc tinobsy.cpp:12] vm::alloc() a cons +[alloc tinobsy.cpp:12] vm::alloc() a nil +[alloc tinobsy.cpp:12] vm::alloc() a cons +[alloc tinobsy.cpp:12] vm::alloc() a nil +[alloc tinobsy.cpp:12] vm::alloc() a cons +[gc tinobsy.cpp:68] vm::gc() begin, 108 objects free / 128 objects total (1 chunks) { +[markobject tinobsy.cpp:57] Marking a cons +[markobject tinobsy.cpp:57] Marking a nil +[markobject tinobsy.cpp:59] No MARK pointer, returning... +[markobject tinobsy.cpp:57] Marking a cons +[markobject tinobsy.cpp:57] Marking a nil +[markobject tinobsy.cpp:59] No MARK pointer, returning... +[markobject tinobsy.cpp:57] Marking a cons +[markobject tinobsy.cpp:57] Marking a nil +[markobject tinobsy.cpp:59] No MARK pointer, returning... +[markobject tinobsy.cpp:57] Marking a cons +[markobject tinobsy.cpp:57] Marking a nil +[markobject tinobsy.cpp:59] No MARK pointer, returning... +[markobject tinobsy.cpp:57] Marking a cons +[markobject tinobsy.cpp:57] Marking a nil +[markobject tinobsy.cpp:59] No MARK pointer, returning... +[markobject tinobsy.cpp:57] Marking a cons +[markobject tinobsy.cpp:57] Marking a nil +[markobject tinobsy.cpp:59] No MARK pointer, returning... +[markobject tinobsy.cpp:57] Marking a cons +[markobject tinobsy.cpp:57] Marking a nil +[markobject tinobsy.cpp:59] No MARK pointer, returning... +[markobject tinobsy.cpp:57] Marking a cons +[markobject tinobsy.cpp:57] Marking a nil +[markobject tinobsy.cpp:59] No MARK pointer, returning... +[markobject tinobsy.cpp:57] Marking a cons +[markobject tinobsy.cpp:57] Marking a nil +[markobject tinobsy.cpp:59] No MARK pointer, returning... +[markobject tinobsy.cpp:57] Marking a cons +[markobject tinobsy.cpp:57] Marking a nil +[markobject tinobsy.cpp:59] No MARK pointer, returning... +[markobject tinobsy.cpp:43] Marking NULL +[gc tinobsy.cpp:70] garbage collect sweeping objects +[gc tinobsy.cpp:96] } +[gc tinobsy.cpp:100] vm::gc() after sweeping objects, 0 objects freed, 0 chunks freed +[test_mark_no_sweep tinobsy_test.cpp:80] Test succeeded: VM->freespace == oldobj ------------------------------------------------------------- -[tinobsy_test.cpp:88-test_freeing_things] Test owned pointers are freed -[tinobsy_test.cpp:92-test_freeing_things] Random atom is acnknwybahmekbwxpbkxttjaoyvjudtjptapuhojuixmtnxfbfawkedeioljvnu -[tinobsy.cpp:12-alloc] vm::alloc() a atom -[tinobsy_test.cpp:92-test_freeing_things] Random atom is yrlgppvwhybhpcsnxnavlhovnlggjgbckhsqwprjgwimnlmzzakfmmpbzmdpfsu -[tinobsy.cpp:12-alloc] vm::alloc() a atom -[tinobsy_test.cpp:92-test_freeing_things] Random atom is iqkpwefxjjwkjvjskqeuwrkmnlfiinfgquntafnerwzcmaplasngkkfhpemkegy -[tinobsy.cpp:12-alloc] vm::alloc() a atom -[tinobsy_test.cpp:92-test_freeing_things] Random atom is tbyoiloabarzsfttqktgovrqiimnpfufasnltutrlintbeabxjstgjtvbrvukec -[tinobsy.cpp:12-alloc] vm::alloc() a atom -[tinobsy_test.cpp:92-test_freeing_things] Random atom is wjzcvqmmxpnquearvrjwkuyhrsdsejoyueretetnfemztsnrjjuovfmwnfgetbo -[tinobsy.cpp:12-alloc] vm::alloc() a atom -[tinobsy_test.cpp:92-test_freeing_things] Random atom is amfhykzyybuqrlmoohglgtxheitisrkntthpcogqicrahezmkpxifgblcrmpojp -[tinobsy.cpp:12-alloc] vm::alloc() a atom -[tinobsy_test.cpp:92-test_freeing_things] Random atom is dxnckosxkobwbmvmlozebiwhtujhguqqenbvoojmzhrljwkapadpzfqqzkkimlp -[tinobsy.cpp:12-alloc] vm::alloc() a atom -[tinobsy_test.cpp:92-test_freeing_things] Random atom is tluqwklediytbpviloxrtpturcbdvhvqotqscxfiwcgqtaonxteqfuulrtymcre -[tinobsy.cpp:12-alloc] vm::alloc() a atom -[tinobsy_test.cpp:92-test_freeing_things] Random atom is yitlymugqwewigsyskisthlmlntxcpvrlecbwrgtulifilzxpqyhlmgdmxubytq -[tinobsy.cpp:12-alloc] vm::alloc() a atom -[tinobsy_test.cpp:92-test_freeing_things] Random atom is npbbawsgitbcfkjielglajobkyygadjocjuizznemcmdfhchodpltxkcmbdsstx -[tinobsy.cpp:12-alloc] vm::alloc() a atom -[tinobsy.cpp:68-gc] vm::gc() begin, 98 objects free / 128 objects total (1 chunks) { -[tinobsy.cpp:57-markobject] Marking a cons -[tinobsy.cpp:57-markobject] Marking a nil -[tinobsy.cpp:59-markobject] No MARK pointer, returning... -[tinobsy.cpp:57-markobject] Marking a cons -[tinobsy.cpp:57-markobject] Marking a nil -[tinobsy.cpp:59-markobject] No MARK pointer, returning... -[tinobsy.cpp:57-markobject] Marking a cons -[tinobsy.cpp:57-markobject] Marking a nil -[tinobsy.cpp:59-markobject] No MARK pointer, returning... -[tinobsy.cpp:57-markobject] Marking a cons -[tinobsy.cpp:57-markobject] Marking a nil -[tinobsy.cpp:59-markobject] No MARK pointer, returning... -[tinobsy.cpp:57-markobject] Marking a cons -[tinobsy.cpp:57-markobject] Marking a nil -[tinobsy.cpp:59-markobject] No MARK pointer, returning... -[tinobsy.cpp:57-markobject] Marking a cons -[tinobsy.cpp:57-markobject] Marking a nil -[tinobsy.cpp:59-markobject] No MARK pointer, returning... -[tinobsy.cpp:57-markobject] Marking a cons -[tinobsy.cpp:57-markobject] Marking a nil -[tinobsy.cpp:59-markobject] No MARK pointer, returning... -[tinobsy.cpp:57-markobject] Marking a cons -[tinobsy.cpp:57-markobject] Marking a nil -[tinobsy.cpp:59-markobject] No MARK pointer, returning... -[tinobsy.cpp:57-markobject] Marking a cons -[tinobsy.cpp:57-markobject] Marking a nil -[tinobsy.cpp:59-markobject] No MARK pointer, returning... -[tinobsy.cpp:57-markobject] Marking a cons -[tinobsy.cpp:57-markobject] Marking a nil -[tinobsy.cpp:59-markobject] No MARK pointer, returning... -[tinobsy.cpp:43-markobject] Marking NULL -[tinobsy.cpp:70-gc] garbage collect sweeping objects -[tinobsy.cpp:96-gc] } -[tinobsy.cpp:100-gc] vm::gc() after sweeping objects, 10 objects freed, 0 chunks freed -[tinobsy_test.cpp:97-test_freeing_things] Check Valgrind output to make sure stuff was freed +[test_freeing_things tinobsy_test.cpp:88] Test owned pointers are freed +[test_freeing_things tinobsy_test.cpp:92] Random atom is hwrdlzcpmryvcomwcnybokutkxbcowgmtzsmfuodshaoqaacokxlormebvbimsi +[alloc tinobsy.cpp:12] vm::alloc() a atom +[test_freeing_things tinobsy_test.cpp:92] Random atom is rixtxwhogtlbttiwhqviomudvepurbfitpfndeowiqnfiihvifrkddtajhjxdyr +[alloc tinobsy.cpp:12] vm::alloc() a atom +[test_freeing_things tinobsy_test.cpp:92] Random atom is lhjlrzqterthafuuxzsgiblljpaavjhjiypaqpkedbxvsetivjcyhhbymokbquf +[alloc tinobsy.cpp:12] vm::alloc() a atom +[test_freeing_things tinobsy_test.cpp:92] Random atom is pgvcgodzvdfcmkmuhhtcizldxeuztdifqyphhbadsbiagoktqcwijccfnwutjhl +[alloc tinobsy.cpp:12] vm::alloc() a atom +[test_freeing_things tinobsy_test.cpp:92] Random atom is jbridqkqdjpnilhfldgwypvlpnqggjuufpjwsiemqsniyhxbtanpzbrybrzszmz +[alloc tinobsy.cpp:12] vm::alloc() a atom +[test_freeing_things tinobsy_test.cpp:92] Random atom is oapdbzgmzwmeignuloirrtuowargytpjgzegglfpzgseessbclennppwcdkekql +[alloc tinobsy.cpp:12] vm::alloc() a atom +[test_freeing_things tinobsy_test.cpp:92] Random atom is icvbpgdlaqydyjmtskudkhcxdpshediditpzxnstnzzrplicdgirytnxhspxblu +[alloc tinobsy.cpp:12] vm::alloc() a atom +[test_freeing_things tinobsy_test.cpp:92] Random atom is inkqzhfbgujzlsrfbzveqeqxzdrfsvcxvfvheahlligdlkwkdmxdwviboaavouj +[alloc tinobsy.cpp:12] vm::alloc() a atom +[test_freeing_things tinobsy_test.cpp:92] Random atom is ichvmwfxzbouhwppfprmamuiazxorenabhpvjvjazqlswwxgdbjbnvuokejctky +[alloc tinobsy.cpp:12] vm::alloc() a atom +[test_freeing_things tinobsy_test.cpp:92] Random atom is wugqbflpuzrkxufszdwlsmqckrgdpizfhafgbymrqebcsaoumpqaaqiwychhest +[alloc tinobsy.cpp:12] vm::alloc() a atom +[gc tinobsy.cpp:68] vm::gc() begin, 98 objects free / 128 objects total (1 chunks) { +[markobject tinobsy.cpp:57] Marking a cons +[markobject tinobsy.cpp:57] Marking a nil +[markobject tinobsy.cpp:59] No MARK pointer, returning... +[markobject tinobsy.cpp:57] Marking a cons +[markobject tinobsy.cpp:57] Marking a nil +[markobject tinobsy.cpp:59] No MARK pointer, returning... +[markobject tinobsy.cpp:57] Marking a cons +[markobject tinobsy.cpp:57] Marking a nil +[markobject tinobsy.cpp:59] No MARK pointer, returning... +[markobject tinobsy.cpp:57] Marking a cons +[markobject tinobsy.cpp:57] Marking a nil +[markobject tinobsy.cpp:59] No MARK pointer, returning... +[markobject tinobsy.cpp:57] Marking a cons +[markobject tinobsy.cpp:57] Marking a nil +[markobject tinobsy.cpp:59] No MARK pointer, returning... +[markobject tinobsy.cpp:57] Marking a cons +[markobject tinobsy.cpp:57] Marking a nil +[markobject tinobsy.cpp:59] No MARK pointer, returning... +[markobject tinobsy.cpp:57] Marking a cons +[markobject tinobsy.cpp:57] Marking a nil +[markobject tinobsy.cpp:59] No MARK pointer, returning... +[markobject tinobsy.cpp:57] Marking a cons +[markobject tinobsy.cpp:57] Marking a nil +[markobject tinobsy.cpp:59] No MARK pointer, returning... +[markobject tinobsy.cpp:57] Marking a cons +[markobject tinobsy.cpp:57] Marking a nil +[markobject tinobsy.cpp:59] No MARK pointer, returning... +[markobject tinobsy.cpp:57] Marking a cons +[markobject tinobsy.cpp:57] Marking a nil +[markobject tinobsy.cpp:59] No MARK pointer, returning... +[markobject tinobsy.cpp:43] Marking NULL +[gc tinobsy.cpp:70] garbage collect sweeping objects +[gc tinobsy.cpp:96] } +[gc tinobsy.cpp:100] vm::gc() after sweeping objects, 10 objects freed, 0 chunks freed +[test_freeing_things tinobsy_test.cpp:97] Check Valgrind output to make sure stuff was freed ------------------------------------------------------------- -[tinobsy_test.cpp:101-test_reference_cycle] Test unreachable reference cycle gets collected -[tinobsy.cpp:12-alloc] vm::alloc() a cons -[tinobsy.cpp:68-gc] vm::gc() begin, 107 objects free / 128 objects total (1 chunks) { -[tinobsy.cpp:57-markobject] Marking a cons -[tinobsy.cpp:57-markobject] Marking a nil -[tinobsy.cpp:59-markobject] No MARK pointer, returning... -[tinobsy.cpp:57-markobject] Marking a cons -[tinobsy.cpp:57-markobject] Marking a nil -[tinobsy.cpp:59-markobject] No MARK pointer, returning... -[tinobsy.cpp:57-markobject] Marking a cons -[tinobsy.cpp:57-markobject] Marking a nil -[tinobsy.cpp:59-markobject] No MARK pointer, returning... -[tinobsy.cpp:57-markobject] Marking a cons -[tinobsy.cpp:57-markobject] Marking a nil -[tinobsy.cpp:59-markobject] No MARK pointer, returning... -[tinobsy.cpp:57-markobject] Marking a cons -[tinobsy.cpp:57-markobject] Marking a nil -[tinobsy.cpp:59-markobject] No MARK pointer, returning... -[tinobsy.cpp:57-markobject] Marking a cons -[tinobsy.cpp:57-markobject] Marking a nil -[tinobsy.cpp:59-markobject] No MARK pointer, returning... -[tinobsy.cpp:57-markobject] Marking a cons -[tinobsy.cpp:57-markobject] Marking a nil -[tinobsy.cpp:59-markobject] No MARK pointer, returning... -[tinobsy.cpp:57-markobject] Marking a cons -[tinobsy.cpp:57-markobject] Marking a nil -[tinobsy.cpp:59-markobject] No MARK pointer, returning... -[tinobsy.cpp:57-markobject] Marking a cons -[tinobsy.cpp:57-markobject] Marking a nil -[tinobsy.cpp:59-markobject] No MARK pointer, returning... -[tinobsy.cpp:57-markobject] Marking a cons -[tinobsy.cpp:57-markobject] Marking a nil -[tinobsy.cpp:59-markobject] No MARK pointer, returning... -[tinobsy.cpp:43-markobject] Marking NULL -[tinobsy.cpp:70-gc] garbage collect sweeping objects -[tinobsy.cpp:96-gc] } -[tinobsy.cpp:100-gc] vm::gc() after sweeping objects, 1 objects freed, 0 chunks freed -[tinobsy_test.cpp:106-test_reference_cycle] Test succeeded: VM->freespace == oldobj +[test_reference_cycle tinobsy_test.cpp:101] Test unreachable reference cycle gets collected +[alloc tinobsy.cpp:12] vm::alloc() a cons +[gc tinobsy.cpp:68] vm::gc() begin, 107 objects free / 128 objects total (1 chunks) { +[markobject tinobsy.cpp:57] Marking a cons +[markobject tinobsy.cpp:57] Marking a nil +[markobject tinobsy.cpp:59] No MARK pointer, returning... +[markobject tinobsy.cpp:57] Marking a cons +[markobject tinobsy.cpp:57] Marking a nil +[markobject tinobsy.cpp:59] No MARK pointer, returning... +[markobject tinobsy.cpp:57] Marking a cons +[markobject tinobsy.cpp:57] Marking a nil +[markobject tinobsy.cpp:59] No MARK pointer, returning... +[markobject tinobsy.cpp:57] Marking a cons +[markobject tinobsy.cpp:57] Marking a nil +[markobject tinobsy.cpp:59] No MARK pointer, returning... +[markobject tinobsy.cpp:57] Marking a cons +[markobject tinobsy.cpp:57] Marking a nil +[markobject tinobsy.cpp:59] No MARK pointer, returning... +[markobject tinobsy.cpp:57] Marking a cons +[markobject tinobsy.cpp:57] Marking a nil +[markobject tinobsy.cpp:59] No MARK pointer, returning... +[markobject tinobsy.cpp:57] Marking a cons +[markobject tinobsy.cpp:57] Marking a nil +[markobject tinobsy.cpp:59] No MARK pointer, returning... +[markobject tinobsy.cpp:57] Marking a cons +[markobject tinobsy.cpp:57] Marking a nil +[markobject tinobsy.cpp:59] No MARK pointer, returning... +[markobject tinobsy.cpp:57] Marking a cons +[markobject tinobsy.cpp:57] Marking a nil +[markobject tinobsy.cpp:59] No MARK pointer, returning... +[markobject tinobsy.cpp:57] Marking a cons +[markobject tinobsy.cpp:57] Marking a nil +[markobject tinobsy.cpp:59] No MARK pointer, returning... +[markobject tinobsy.cpp:43] Marking NULL +[gc tinobsy.cpp:70] garbage collect sweeping objects +[gc tinobsy.cpp:96] } +[gc tinobsy.cpp:100] vm::gc() after sweeping objects, 1 objects freed, 0 chunks freed +[test_reference_cycle tinobsy_test.cpp:106] Test succeeded: VM->freespace == oldobj ------------------------------------------------------------- -[tinobsy_test.cpp:119-test_interning] Test primitives are interned -[tinobsy.cpp:12-alloc] vm::alloc() a int -[tinobsy_test.cpp:122-test_interning] Assertion succeeded: a->as_big_int == 47 -[tinobsy.cpp:134-get_existing_object] found equal object -[tinobsy_test.cpp:125-test_interning] Test succeeded: a == b -[tinobsy.cpp:134-get_existing_object] found equal object -[tinobsy_test.cpp:125-test_interning] Test succeeded: a == b -[tinobsy.cpp:134-get_existing_object] found equal object -[tinobsy_test.cpp:125-test_interning] Test succeeded: a == b -[tinobsy.cpp:134-get_existing_object] found equal object -[tinobsy_test.cpp:125-test_interning] Test succeeded: a == b -[tinobsy.cpp:134-get_existing_object] found equal object -[tinobsy_test.cpp:125-test_interning] Test succeeded: a == b -[tinobsy.cpp:134-get_existing_object] found equal object -[tinobsy_test.cpp:125-test_interning] Test succeeded: a == b -[tinobsy.cpp:134-get_existing_object] found equal object -[tinobsy_test.cpp:125-test_interning] Test succeeded: a == b -[tinobsy.cpp:134-get_existing_object] found equal object -[tinobsy_test.cpp:125-test_interning] Test succeeded: a == b -[tinobsy.cpp:134-get_existing_object] found equal object -[tinobsy_test.cpp:125-test_interning] Test succeeded: a == b -[tinobsy.cpp:134-get_existing_object] found equal object -[tinobsy_test.cpp:125-test_interning] Test succeeded: a == b +[test_interning tinobsy_test.cpp:119] Test primitives are interned +[alloc tinobsy.cpp:12] vm::alloc() a int +[test_interning tinobsy_test.cpp:122] Assertion succeeded: a->as_big_int == 47 +[get_existing_object tinobsy.cpp:134] found equal object +[test_interning tinobsy_test.cpp:125] Test succeeded: a == b +[get_existing_object tinobsy.cpp:134] found equal object +[test_interning tinobsy_test.cpp:125] Test succeeded: a == b +[get_existing_object tinobsy.cpp:134] found equal object +[test_interning tinobsy_test.cpp:125] Test succeeded: a == b +[get_existing_object tinobsy.cpp:134] found equal object +[test_interning tinobsy_test.cpp:125] Test succeeded: a == b +[get_existing_object tinobsy.cpp:134] found equal object +[test_interning tinobsy_test.cpp:125] Test succeeded: a == b +[get_existing_object tinobsy.cpp:134] found equal object +[test_interning tinobsy_test.cpp:125] Test succeeded: a == b +[get_existing_object tinobsy.cpp:134] found equal object +[test_interning tinobsy_test.cpp:125] Test succeeded: a == b +[get_existing_object tinobsy.cpp:134] found equal object +[test_interning tinobsy_test.cpp:125] Test succeeded: a == b +[get_existing_object tinobsy.cpp:134] found equal object +[test_interning tinobsy_test.cpp:125] Test succeeded: a == b +[get_existing_object tinobsy.cpp:134] found equal object +[test_interning tinobsy_test.cpp:125] Test succeeded: a == b ------------------------------------------------------------- -[tinobsy_test.cpp:149-main] end of tests. Total 0 fails -[tinobsy.cpp:114-~vm] vm::~vm() { -[tinobsy.cpp:123-~vm] } +[main tinobsy_test.cpp:149] end of tests. Total 0 fails +[~vm tinobsy.cpp:114] vm::~vm() { +[~vm tinobsy.cpp:123] } diff --git a/test/valgrind32.txt b/test/valgrind32.txt index ad56582..afd6cb7 100644 --- a/test/valgrind32.txt +++ b/test/valgrind32.txt @@ -1,15 +1,15 @@ -==11833== Memcheck, a memory error detector -==11833== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al. -==11833== Using Valgrind-3.15.0 and LibVEX; rerun with -h for copyright info -==11833== Command: ./ttest32 -==11833== +==8287== Memcheck, a memory error detector +==8287== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al. +==8287== Using Valgrind-3.15.0 and LibVEX; rerun with -h for copyright info +==8287== Command: ./ttest32 +==8287== 0 tests failed -==11833== -==11833== HEAP SUMMARY: -==11833== in use at exit: 0 bytes in 0 blocks -==11833== total heap usage: 15 allocs, 15 frees, 28,832 bytes allocated -==11833== -==11833== All heap blocks were freed -- no leaks are possible -==11833== -==11833== For lists of detected and suppressed errors, rerun with: -s -==11833== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) +==8287== +==8287== HEAP SUMMARY: +==8287== in use at exit: 0 bytes in 0 blocks +==8287== total heap usage: 15 allocs, 15 frees, 28,832 bytes allocated +==8287== +==8287== All heap blocks were freed -- no leaks are possible +==8287== +==8287== For lists of detected and suppressed errors, rerun with: -s +==8287== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/test/valgrind64.txt b/test/valgrind64.txt index 870bb24..2657a7c 100644 --- a/test/valgrind64.txt +++ b/test/valgrind64.txt @@ -1,15 +1,15 @@ -==11814== Memcheck, a memory error detector -==11814== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al. -==11814== Using Valgrind-3.15.0 and LibVEX; rerun with -h for copyright info -==11814== Command: ./ttest64 -==11814== +==8268== Memcheck, a memory error detector +==8268== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al. +==8268== Using Valgrind-3.15.0 and LibVEX; rerun with -h for copyright info +==8268== Command: ./ttest64 +==8268== 0 tests failed -==11814== -==11814== HEAP SUMMARY: -==11814== in use at exit: 0 bytes in 0 blocks -==11814== total heap usage: 15 allocs, 15 frees, 85,696 bytes allocated -==11814== -==11814== All heap blocks were freed -- no leaks are possible -==11814== -==11814== For lists of detected and suppressed errors, rerun with: -s -==11814== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) +==8268== +==8268== HEAP SUMMARY: +==8268== in use at exit: 0 bytes in 0 blocks +==8268== total heap usage: 15 allocs, 15 frees, 85,696 bytes allocated +==8268== +==8268== All heap blocks were freed -- no leaks are possible +==8268== +==8268== For lists of detected and suppressed errors, rerun with: -s +==8268== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/tinobsy.hpp b/tinobsy.hpp index 5ff50e3..933e0ce 100644 --- a/tinobsy.hpp +++ b/tinobsy.hpp @@ -165,132 +165,7 @@ object* markcons(vm*, object*); if (maybe) return maybe; \ } while (0) -#define car(x) ((x)->car) -#define cdr(x) ((x)->cdr) -#define caar(x) car(car(x)) -#define cadr(x) car(cdr(x)) -#define cdar(x) cdr(car(x)) -#define cddr(x) cdr(cdr(x)) -#define caaar(x) car(caar(x)) -#define caadr(x) car(cadr(x)) -#define cadar(x) car(cdar(x)) -#define caddr(x) car(cddr(x)) -#define cdaar(x) cdr(caar(x)) -#define cdadr(x) cdr(cadr(x)) -#define cddar(x) cdr(cdar(x)) -#define cdddr(x) cdr(cddr(x)) -#define caaaar(x) car(caaar(x)) -#define caaadr(x) car(caadr(x)) -#define caadar(x) car(cadar(x)) -#define caaddr(x) car(caddr(x)) -#define cadaar(x) car(cdaar(x)) -#define cadadr(x) car(cdadr(x)) -#define caddar(x) car(cddar(x)) -#define cadddr(x) car(cdddr(x)) -#define cdaaar(x) cdr(caaar(x)) -#define cdaadr(x) cdr(caadr(x)) -#define cdadar(x) cdr(cadar(x)) -#define cdaddr(x) cdr(caddr(x)) -#define cddaar(x) cdr(cdaar(x)) -#define cddadr(x) cdr(cdadr(x)) -#define cdddar(x) cdr(cddar(x)) -#define cddddr(x) cdr(cdddr(x)) -#define caaaaar(x) car(caaaar(x)) -#define caaaadr(x) car(caaadr(x)) -#define caaadar(x) car(caadar(x)) -#define caaaddr(x) car(caaddr(x)) -#define caadaar(x) car(cadaar(x)) -#define caadadr(x) car(cadadr(x)) -#define caaddar(x) car(caddar(x)) -#define caadddr(x) car(cadddr(x)) -#define cadaaar(x) car(cdaaar(x)) -#define cadaadr(x) car(cdaadr(x)) -#define cadadar(x) car(cdadar(x)) -#define cadaddr(x) car(cdaddr(x)) -#define caddaar(x) car(cddaar(x)) -#define caddadr(x) car(cddadr(x)) -#define cadddar(x) car(cdddar(x)) -#define caddddr(x) car(cddddr(x)) -#define cdaaaar(x) cdr(caaaar(x)) -#define cdaaadr(x) cdr(caaadr(x)) -#define cdaadar(x) cdr(caadar(x)) -#define cdaaddr(x) cdr(caaddr(x)) -#define cdadaar(x) cdr(cadaar(x)) -#define cdadadr(x) cdr(cadadr(x)) -#define cdaddar(x) cdr(caddar(x)) -#define cdadddr(x) cdr(cadddr(x)) -#define cddaaar(x) cdr(cdaaar(x)) -#define cddaadr(x) cdr(cdaadr(x)) -#define cddadar(x) cdr(cdadar(x)) -#define cddaddr(x) cdr(cdaddr(x)) -#define cdddaar(x) cdr(cddaar(x)) -#define cdddadr(x) cdr(cddadr(x)) -#define cddddar(x) cdr(cdddar(x)) -#define cdddddr(x) cdr(cddddr(x)) -#define caaaaaar(x) car(caaaaar(x)) -#define caaaaadr(x) car(caaaadr(x)) -#define caaaadar(x) car(caaadar(x)) -#define caaaaddr(x) car(caaaddr(x)) -#define caaadaar(x) car(caadaar(x)) -#define caaadadr(x) car(caadadr(x)) -#define caaaddar(x) car(caaddar(x)) -#define caaadddr(x) car(caadddr(x)) -#define caadaaar(x) car(cadaaar(x)) -#define caadaadr(x) car(cadaadr(x)) -#define caadadar(x) car(cadadar(x)) -#define caadaddr(x) car(cadaddr(x)) -#define caaddaar(x) car(caddaar(x)) -#define caaddadr(x) car(caddadr(x)) -#define caadddar(x) car(cadddar(x)) -#define caaddddr(x) car(caddddr(x)) -#define cadaaaar(x) car(cdaaaar(x)) -#define cadaaadr(x) car(cdaaadr(x)) -#define cadaadar(x) car(cdaadar(x)) -#define cadaaddr(x) car(cdaaddr(x)) -#define cadadaar(x) car(cdadaar(x)) -#define cadadadr(x) car(cdadadr(x)) -#define cadaddar(x) car(cdaddar(x)) -#define cadadddr(x) car(cdadddr(x)) -#define caddaaar(x) car(cddaaar(x)) -#define caddaadr(x) car(cddaadr(x)) -#define caddadar(x) car(cddadar(x)) -#define caddaddr(x) car(cddaddr(x)) -#define cadddaar(x) car(cdddaar(x)) -#define cadddadr(x) car(cdddadr(x)) -#define caddddar(x) car(cddddar(x)) -#define cadddddr(x) car(cdddddr(x)) -#define cdaaaaar(x) cdr(caaaaar(x)) -#define cdaaaadr(x) cdr(caaaadr(x)) -#define cdaaadar(x) cdr(caaadar(x)) -#define cdaaaddr(x) cdr(caaaddr(x)) -#define cdaadaar(x) cdr(caadaar(x)) -#define cdaadadr(x) cdr(caadadr(x)) -#define cdaaddar(x) cdr(caaddar(x)) -#define cdaadddr(x) cdr(caadddr(x)) -#define cdadaaar(x) cdr(cadaaar(x)) -#define cdadaadr(x) cdr(cadaadr(x)) -#define cdadadar(x) cdr(cadadar(x)) -#define cdadaddr(x) cdr(cadaddr(x)) -#define cdaddaar(x) cdr(caddaar(x)) -#define cdaddadr(x) cdr(caddadr(x)) -#define cdadddar(x) cdr(cadddar(x)) -#define cdaddddr(x) cdr(caddddr(x)) -#define cddaaaar(x) cdr(cdaaaar(x)) -#define cddaaadr(x) cdr(cdaaadr(x)) -#define cddaadar(x) cdr(cdaadar(x)) -#define cddaaddr(x) cdr(cdaaddr(x)) -#define cddadaar(x) cdr(cdadaar(x)) -#define cddadadr(x) cdr(cdadadr(x)) -#define cddaddar(x) cdr(cdaddar(x)) -#define cddadddr(x) cdr(cdadddr(x)) -#define cdddaaar(x) cdr(cddaaar(x)) -#define cdddaadr(x) cdr(cddaadr(x)) -#define cdddadar(x) cdr(cddadar(x)) -#define cdddaddr(x) cdr(cddaddr(x)) -#define cddddaar(x) cdr(cdddaar(x)) -#define cddddadr(x) cdr(cdddadr(x)) -#define cdddddar(x) cdr(cddddar(x)) -#define cddddddr(x) cdr(cdddddr(x)) +#include "cxxxr.h" }