Commit Graph

45 Commits

Author SHA1 Message Date
Kartik Agaram 5170e27ce8 6207 - tweaks while creating a video
https://futureofcoding.org/two-minute-week
2020-04-19 09:32:46 -07:00
Kartik Agaram 9e5e87ca37 5865
Give the bootstrap C++ program a less salient name.
2020-01-02 02:01:41 -08:00
Kartik Agaram bfadbd4bbf 5801 - move `tangle` to `tools/` dir 2019-12-07 18:15:49 -08:00
Kartik Agaram 72f278ae6b 5797 - move `enumerate/` to `tools/` directory 2019-12-07 18:06:16 -08:00
Kartik Agaram c1d596f56a 5796 - move treeshake to a new tools/ directory 2019-12-07 18:05:06 -08:00
Kartik Agaram b6d62cc91c 5793
Start of a new script called treeshake to emit stats for minimal line counts
and binary sizes for all apps.

It doesn't actually do any dead-code deletion yet. But it does build and
run all apps successfully. (Except apps/mu; we'll ignore that for now.
It's probably not being disciplined about identifying internal labels.)
2019-12-05 23:45:22 -08:00
Kartik Agaram fd91f7f61b 5675 - move helpers from subx-common into layers
This undoes 5672 in favor of a new plan:

Layers 000 - 099 are for running without syntax sugar. We use them for
building syntax-sugar passes.

Layers 100 and up are for running with all syntax sugar.

The layers are arranged in approximate order so more phases rely on earlier
layers than later ones.

I plan to not use intermediate syntax sugar (just sigils without calls,
or sigils and calls without braces) anywhere except in the specific passes
implementing them.
2019-09-19 23:25:49 -07:00
Kartik Agaram dfbe155087 5672 - move hex out of apps 2019-09-19 15:59:22 -07:00
Kartik Agaram 46bb1d3157 5650 - support a second OS: soso
https://github.com/ozkl/soso

+ Much smaller than Linux; builds instantly
+ Supports graphics
- No network support
- Doesn't work on a cloud server (yet?)
2019-09-14 01:45:55 -07:00
Kartik Agaram ded2b24ce2 5649 2019-09-14 00:01:49 -07:00
Kartik Agaram ecfbbfb5b5 5647 - experimental support for swapping OS 2019-09-11 19:53:23 -07:00
Kartik Agaram e97b446ac3 5594 - rename 'desugar' to 'sigils'
There's going to be multiple forms of syntax sugar going forward.
2019-08-31 20:43:41 -07:00
Kartik Agaram 0d3b3ef04a Merge branch 'master' into desugar 2019-08-25 15:04:26 -07:00
Kartik Agaram 1a7b15aa3d skip building apps when running a single test
Environment variables allow me to have non-local effects inside scripts.
2019-08-25 00:58:20 -07:00
Kartik Agaram b646146892 5512 - don't rebuild apps by default
We basically only want to rebuild phases of the self-hosted translator
when we run the self-hosted translator.
2019-08-14 16:06:40 -07:00
Kartik Agaram 33f1ca780c . 2019-08-13 10:08:53 -07:00
Kartik Agaram 6e1eeeebfb 5485 - promote SubX to top-level 2019-07-27 17:47:59 -07:00
Kartik K. Agaram f0cf7af7d8 4216 - include simpler alternative to build script 2018-03-12 23:26:10 -07:00
Kartik K. Agaram 745a6dee78 4204 2018-02-15 20:36:16 -08:00
Kartik K. Agaram 49559e007b 3967 2017-07-10 11:08:54 -07:00
Kartik K. Agaram eed2f30ee1 3846
Be more robust to stray files with numeric prefixes.
2017-05-06 21:11:58 -07:00
Kartik K. Agaram 46a3b11cdb 3835 2017-04-18 18:19:22 -07:00
Kartik K. Agaram e3a53f3a7d 3834 2017-04-18 18:16:23 -07:00
Kartik K. Agaram 38b8061860 3815
Turns out enabling profiling requires '-pg' to also be passed in to the
linker. Might as well pass all flags everywhere.
2017-04-06 10:42:56 -07:00
Kartik K. Agaram daa214478a 3807
Handle CFLAGS like "-g -O3 -pg" while compiling.
2017-03-31 08:00:28 -07:00
Kartik K. Agaram e35c2d6857 3712
Let's start highlighting pipe stages better in shell scripts.
2016-12-26 15:57:46 -08:00
Kartik K. Agaram 79cb6ea54e 3680
Was there some reason I used a subshell?
No reason recorded at bottom.
2016-11-17 22:07:46 -08:00
Kartik K. Agaram a6deb48067 3551 2016-10-22 11:35:08 -07:00
Kartik K. Agaram 48f6d48ac9 3548 2016-10-22 11:03:55 -07:00
Kartik K. Agaram 89fd0bf2e7 3546 2016-10-22 10:42:32 -07:00
Kartik K. Agaram 4955b30b7f 3540 2016-10-21 08:24:41 -07:00
Kartik K. Agaram 22d93b7671 3538 2016-10-20 23:57:12 -07:00
Kartik K. Agaram 20037b7c6d 3534
Streamline the build process.

It's safest to always:
  a) check if each output is `older_than` the inputs necessary to
  construct it, and
  b) update the output only if something changed.

However:

  i) We don't yet have helpers to do b) in all situations, and
  ii) combining a) and b) can cause `older_than` to spuriously report
  files being updated.

So we'll always run exactly one of a) and b) and err on the side of
keeping the output reliable, at the risk of occasionally updating a file
unnecessarily and triggering unnecessary work downstream. Cross that
bridge when we run into it.
2016-10-20 22:59:36 -07:00
Kartik K. Agaram 9397c4c26b 3533
Don't update autogenerated *_list files unless necessary.
2016-10-20 22:19:37 -07:00
Kartik K. Agaram c120767583 3512 2016-10-17 22:32:37 -07:00
Kartik K. Agaram 93569d9d32 3509 2016-10-16 12:54:07 -07:00
Kartik K. Agaram ee36db4076 3493 2016-10-10 15:16:15 -07:00
Kartik K. Agaram 3315a7d3bb 3488 -
I'd messed up termbox in commit 3443; it was weird how it failed though.
The terminal got really sluggish to switch between windows when the
edit/ app was running. And it stopped clearing the screen properly.
2016-10-08 17:56:07 -07:00
Kartik K. Agaram 2bf1f3115d 3487 2016-10-08 14:02:14 -07:00
Kartik K. Agaram 8f48273355 3475 2016-10-07 19:41:42 -07:00
Kartik K. Agaram 895d410284 3474
Don't print anything during build if there's nothing being built.
2016-10-07 17:10:53 -07:00
Kartik K. Agaram 6b0166ecda 3459 2016-10-07 09:27:46 -07:00
Kartik K. Agaram 6acea7626e 3452
Fix the sense of a shell function.

Somehow in all these years I hadn't realized that 0 is true and non-zero
is false for purposes of *nix shells' `&&` and `||` operators. Suddenly
Urbit doesn't seem so far out..
2016-10-06 20:14:30 -07:00
Kartik K. Agaram b4785580be 3450
Purge remaining `makefile`s, without breaking CI.
2016-10-06 17:13:04 -07:00
Kartik K. Agaram a232af2faf 3447 - drop dependence on GNU make
A generic build system is overkill for such a small project, and it was
adding complexity on OpenBSD which doesn't come with GNU make by
default.

In the process we also eliminate our reliance on bash and perl, at least
for the core build script.
2016-10-06 15:40:56 -07:00