diff options
author | Kartik K. Agaram <vc@akkartik.com> | 2016-03-24 11:38:36 -0700 |
---|---|---|
committer | Kartik K. Agaram <vc@akkartik.com> | 2016-03-24 11:38:36 -0700 |
commit | 3589c440a872f6e622d9fe62af83b4fe69114add (patch) | |
tree | d58be59995e27bf24147a7cf7dcc21abbc476302 /012transform.cc | |
parent | 6bed086e87f6bc5d90699e8ddad97eb8bf05371a (diff) | |
download | mu-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 '012transform.cc')
0 files changed, 0 insertions, 0 deletions