about summary refs log tree commit diff stats
path: root/x.mu
diff options
context:
space:
mode:
authorKartik K. Agaram <vc@akkartik.com>2016-03-24 11:38:36 -0700
committerKartik K. Agaram <vc@akkartik.com>2016-03-24 11:38:36 -0700
commit3589c440a872f6e622d9fe62af83b4fe69114add (patch)
treed58be59995e27bf24147a7cf7dcc21abbc476302 /x.mu
parent6bed086e87f6bc5d90699e8ddad97eb8bf05371a (diff)
downloadmu-3589c440a872f6e622d9fe62af83b4fe69114add.tar.gz
2810 - undo 2767, reclaiming local allocations
I realize that there's still a serious problem with refcounts.
Everything's fine as long as I copy those shared addresses manually
elsewhere, but there's a couple of places where I just do a memcopy
right now without any extra smarts: in 'copy' and 'merge' instructions.

I need to replace support for arbitrary types in these instructions, and
replace it with transforms to generate the right code. Mu basically
needs copy constructors and destructors, so that containers can
decrement the refcounts of any elements (or elements of elements, or
elements of elements of elements..) that are shared addresses.

But my confidence in this whole approach is shaken. Maybe I should stop
this project. It's turning into a language+OS design project where I was
hoping that being a toy would shelter me from these concerns. I just
want to explore turning manual tests into reproducible automatic ones.
Maybe I should just build libraries for each interface to hardware
(network, disk, screen, keyboard, ...) in C++11 or something. Use no
high-level libraries for sockets, files, etc. Instead rely on just the
kernel syscalls, memory allocator, RAII, STL. Build things from scratch
atop those building blocks.
Diffstat (limited to 'x.mu')
0 files changed, 0 insertions, 0 deletions