about summary refs log tree commit diff stats
path: root/cpp/018record
Commit message (Collapse)AuthorAgeFilesLines
* 1069 - rename record/field to container/elementKartik K. Agaram2015-04-161-169/+0
| | | | | | | | | This seems more obvious to laypeople. I've also come up with a design for sum types: I'm going to call them exclusive containers. You call 'get' on containers, 'index' on arrays, and 'maybe-convert' on exclusive containers (as well as tagged types, but that's even later).
* 988 - those replace{} directives were a bad ideaKartik K. Agaram2015-03-271-5/+7
|
* 983 - arc 'integer-array' => c++ 'array:integer'Kartik K. Agaram2015-03-261-3/+3
|
* 982Kartik K. Agaram2015-03-261-47/+54
|
* 979Kartik K. Agaram2015-03-261-9/+3
|
* 978Kartik K. Agaram2015-03-261-0/+20
|
* 973Kartik K. Agaram2015-03-261-4/+2
|
* 971Kartik K. Agaram2015-03-251-3/+8
|
* 969Kartik K. Agaram2015-03-241-1/+1
|
* 968Kartik K. Agaram2015-03-241-5/+5
|
* 966 - c++: starting on default-spaceKartik K. Agaram2015-03-211-1/+1
|
* 961 - done converting names?Kartik K. Agaram2015-03-201-0/+2
| | | | | | | | | | | I'm making two changes to how I compute field offsets: a) I just replace offset names up front, before I even manage field names. I don't bother disallowing x:integer and x:offset in the same function. Let's see if that leads us astray. Certainly saves code. b) I don't bother canonizing the first arg of a get since we know it has to have a type that is some number of 'address' followed by a record. Just assume that we have the right number of 'deref's.
* 953 - bugfix in intermediate layerKartik K. Agaram2015-03-181-4/+2
|
* 949 - paving the way for jumps to labelsKartik K. Agaram2015-03-171-4/+5
| | | | Addresses for reagents are now computed after all transforms.
* 945 - move 'transform' layer to before 'run'Kartik K. Agaram2015-03-171-0/+142
bold } /* Keyword.Constant */ .highlight .kd { color: #008800; font-weight: bold } /* Keyword.Declaration */ .highlight .kn { color: #008800; font-weight: bold } /* Keyword.Namespace */ .highlight .kp { color: #008800 } /* Keyword.Pseudo */ .highlight .kr { color: #008800; font-weight: bold } /* Keyword.Reserved */ .highlight .kt { color: #888888; font-weight: bold } /* Keyword.Type */ .highlight .m { color: #0000DD; font-weight: bold } /* Literal.Number */ .highlight .s { color: #dd2200; background-color: #fff0f0 } /* Literal.String */ .highlight .na { color: #336699 } /* Name.Attribute */ .highlight .nb { color: #003388 } /* Name.Builtin */ .highlight .nc { color: #bb0066; font-weight: bold } /* Name.Class */ .highlight .no { color: #003366; font-weight: bold } /* Name.Constant */ .highlight .nd { color: #555555 } /* Name.Decorator */ .highlight .ne { color: #bb0066; font-weight: bold } /* Name.Exception */ .highlight .nf { color: #0066bb; font-weight: bold } /* Name.Function */ .highlight .nl { color: #336699; font-style: italic } /* Name.Label */ .highlight .nn { color: #bb0066; font-weight: bold } /* Name.Namespace */ .highlight .py { color: #336699; font-weight: bold } /* Name.Property */ .highlight .nt { color: #bb0066; font-weight: bold } /* Name.Tag */ .highlight .nv { color: #336699 } /* Name.Variable */ .highlight .ow { color: #008800 } /* Operator.Word */ .highlight .w { color: #bbbbbb } /* Text.Whitespace */ .highlight .mb { color: #0000DD; font-weight: bold } /* Literal.Number.Bin */ .highlight .mf { color: #0000DD; font-weight: bold } /* Literal.Number.Float */ .highlight .mh { color: #0000DD; font-weight: bold } /* Literal.Number.Hex */ .highlight .mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */ .highlight .mo { color: #0000DD; font-weight: bold } /* Literal.Number.Oct */ .highlight .sa { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Affix */ .highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */ .highlight .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */ .highlight .dl { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */ .highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */ .highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */ .highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */ .highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */ .highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */ .highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */ .highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */ .highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */ .highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */ .highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */ .highlight .vc { color: #336699 } /* Name.Variable.Class */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */
# The simplest possible program: just an infinite loop.
# All is well if your computer clears screen and hangs without restarting.
# On an emulator the window may get bigger to accomodate the higher-resolution
# graphics mode.
#
# To convert to a disk image, first prepare a realistically sized disk image:
#   dd if=/dev/zero of=disk.img count=20160  # 512-byte sectors, so 10MB
# Load the program on the disk image:
#   cat baremetal/boot.hex baremetal/ex1.hex  |bootstrap/bootstrap run hex  > a.bin
#   dd if=a.bin of=disk.img conv=notrunc
# To run:
#   qemu-system-i386 disk.img
# Or:
#   bochs -f baremetal/boot.bochsrc  # boot.bochsrc loads disk.img

# main:  (address 0x9400)
e9 fb ff ff ff  # jump to main, hanging indefinitely

# vim:ft=subx