about summary refs log tree commit diff stats
path: root/305keyboard.subx
Commit message (Collapse)AuthorAgeFilesLines
* 6963 - tile: more idiomatic conventional replKartik Agaram2020-10-051-1/+1
|
* 6926Kartik Agaram2020-10-021-0/+4
|
* 6794 - cleaner interface for keyboardKartik Agaram2020-09-161-3/+10
| | | | | | | So far I've been assuming that read-key only works for ascii, and that I'd need to get more sophisticated both for multi-byte utf-8 and multi-byte terminal escape codes like arrow keys. Rather to my surprise, both work fine. We just need to adjust the types to reflect this fact.
* 6781 - new app: RPN (postfix) calculatorKartik Agaram2020-09-151-0/+16
| | | | This was surprisingly hard; bugs discovered all over the place.
* 6779Kartik Agaram2020-09-141-1/+1
| | | | Looks like Linux turns reads from stdout/stderr into stdin!
* 6778Kartik Agaram2020-09-141-2/+2
|
* 6627Kartik Agaram2020-07-101-1/+1
|
* 6612 - reorganize layersKartik Agaram2020-07-051-0/+196
.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 */
#!/bin/bash
# Repeatedly stop building until successive layers, and run all tests built.
#
# Assumes .subx files all come after .cc files.

set -e

cd `dirname $0`
# add C++ files one at a time
for f in [0-9]*cc
do
  echo "=== bootstrap $f"
  ./build_and_test_until $f
done

# build everything one last time
./clean
./build  # build optimized since we'll be running it repeatedly below

# test pure-SubX files (without syntax sugar) one at a time using bootstrap
for f in [012]*.subx
do
  echo "=== bootstrap $f"
  ./bootstrap translate init.linux $(tools/enumerate --until $f |grep '\.subx$') -o a.elf
  ./bootstrap run a.elf test
  echo
  test `uname` = 'Linux'  &&  {
    chmod +x a.elf
    ./a.elf test
    echo
  } || true
done

# test all SubX files one at a time using the self-hosted translator
for f in [0-9]*.subx
do
  echo "=== self-hosted $f"
  ./translate_subx init.linux $(tools/enumerate --until $f |grep '\.subx$')
  ./bootstrap run a.elf test
  echo
  test `uname` = 'Linux'  &&  {
    chmod +x a.elf
    ./a.elf test
    echo
  } || true
done

# test all Mu files one at a time using the self-hosted translator
for f in [0-9]*.mu
do
  echo "=== self-hosted $f"
  cat $(tools/enumerate --until $f |grep '\.mu$')  |apps/mu  > a.subx
  ./translate_subx init.linux [0-9]*.subx a.subx
  ./bootstrap run a.elf test
  echo
  test `uname` = 'Linux'  &&  {
    chmod +x a.elf
    ./a.elf test
    echo
  } || true
done