[Snek] [keith-packard/snek] 931837: Give up and rename all µduino files to uduino

Keith Packard noreply at github.com
Sat May 16 14:29:21 PDT 2020


  Branch: refs/heads/debian
  Home:   https://github.com/keith-packard/snek
  Commit: 9318378ebfc36084e435bb197d29813db5654d56
      https://github.com/keith-packard/snek/commit/9318378ebfc36084e435bb197d29813db5654d56
  Author: Keith Packard <keithp at keithp.com>
  Date:   2019-12-16 (Mon, 16 Dec 2019)

  Changed paths:
    M doc/snek.adoc
    A ports/uduino/.gitignore
    A ports/uduino/Makefile
    A ports/uduino/ao-pins.h
    A ports/uduino/snek-uduino-install.1
    A ports/uduino/snek-uduino-install.in
    A ports/uduino/snek-uduino.builtin
    R ports/µduino/.gitignore
    R ports/µduino/Makefile
    R ports/µduino/ao-pins.h
    R ports/µduino/snek-uduino-install.1
    R ports/µduino/snek-uduino-install.in
    R ports/µduino/snek-µduino.builtin
    M snek-install.defs

  Log Message:
  -----------
  Give up and rename all µduino files to uduino

Someday we'll have utf-8 filename support everywhere.

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: fb650970246c3e214916b08594d1efbe7bf3462f
      https://github.com/keith-packard/snek/commit/fb650970246c3e214916b08594d1efbe7bf3462f
  Author: Keith Packard <keithp at keithp.com>
  Date:   2019-12-21 (Sat, 21 Dec 2019)

  Changed paths:
    M snek-exec.c
    M snek.h

  Log Message:
  -----------
  Create 'SNEK_INVALID' value for snek_binary type error checking

SNEK_NULL *is* a valid retun from the array operation, so we can't use that
to flag type errors in binary operations. Create a new value, SNEK_INVALID, to
use instead.

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: f37cf65359a2a347b8366fad501df5169bf30785
      https://github.com/keith-packard/snek/commit/f37cf65359a2a347b8366fad501df5169bf30785
  Author: Keith Packard <keithp at keithp.com>
  Date:   2019-12-21 (Sat, 21 Dec 2019)

  Changed paths:
    M snek-memory.c

  Log Message:
  -----------
  Use snek_chunk_t for var iterating over chunks

snek_chunk_t is defined to hold SNEK_NCHUNK, so it's safe to use that
instead of snek_soffset_t when snek_chunk_t is 8 bits, and we need to
use snek_offset_t when snek_chunk_t is snek_offset_t to avoid
signed/unsigned compare warnings.

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: d0d82bb353388cfbb95577d5cfb3bf5612914a1d
      https://github.com/keith-packard/snek/commit/d0d82bb353388cfbb95577d5cfb3bf5612914a1d
  Author: Keith Packard <keithp at keithp.com>
  Date:   2019-12-21 (Sat, 21 Dec 2019)

  Changed paths:
    M ports/posix/snek-posix.builtin

  Log Message:
  -----------
  Make posix pool much larger

This allows large snek programs to run in the posix build.

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: fdb53221f702fae7c8143eeede39a1517a27b751
      https://github.com/keith-packard/snek/commit/fdb53221f702fae7c8143eeede39a1517a27b751
  Author: Keith Packard <keithp at keithp.com>
  Date:   2019-12-21 (Sat, 21 Dec 2019)

  Changed paths:
    A ports/hifive1revb/.gitignore
    A ports/hifive1revb/Makefile
    A ports/hifive1revb/metal.default.lds
    A ports/hifive1revb/metal/machine.h
    A ports/hifive1revb/metal/machine/inline.h
    A ports/hifive1revb/metal/machine/platform.h
    A ports/hifive1revb/snek-hifive1revb.builtin
    A ports/hifive1revb/snek-metal-gpio.c
    A ports/hifive1revb/snek-metal-uart.c
    A ports/hifive1revb/snek-metal.c
    A ports/hifive1revb/snek-metal.h

  Log Message:
  -----------
  Add port to SiFive HiFive1 revb

This references freedom-metal remotely, so building will
require that be available.

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: 17436d8c4dafc64df40757cccfbeb6383b6e90ee
      https://github.com/keith-packard/snek/commit/17436d8c4dafc64df40757cccfbeb6383b6e90ee
  Author: Keith Packard <keithp at keithp.com>
  Date:   2019-12-21 (Sat, 21 Dec 2019)

  Changed paths:
    M snek-install.defs

  Log Message:
  -----------
  Add conditionals to control building hifive1revb and esp32 versions

These two ports require software outside of snek to compile, so use
SNEK_HIFIVE1REVB and SNEK_ESP32 to control whether to try to use them.

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: 18b37d9db47337100610c6757be3754f979156db
      https://github.com/keith-packard/snek/commit/18b37d9db47337100610c6757be3754f979156db
  Author: Keith Packard <keithp at keithp.com>
  Date:   2019-12-22 (Sun, 22 Dec 2019)

  Changed paths:
    M snek-string.c

  Log Message:
  -----------
  Allow indexing strings by negative values

Just like tuples and lists, strings can be indexed by negative values,
which go from the end.

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: a449cefc6ecc257a867acafc5164afb05e73d0fd
      https://github.com/keith-packard/snek/commit/a449cefc6ecc257a867acafc5164afb05e73d0fd
  Author: Keith Packard <keithp at keithp.com>
  Date:   2019-12-22 (Sun, 22 Dec 2019)

  Changed paths:
    M snek-list.c

  Log Message:
  -----------
  Make indexing lists by negative values a bit clearer

Turn into a positive value, cast to the right type, then subtract.

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: 689c7fc6bdaa4ec447913e030853b35478d8694a
      https://github.com/keith-packard/snek/commit/689c7fc6bdaa4ec447913e030853b35478d8694a
  Author: Keith Packard <keithp at keithp.com>
  Date:   2019-12-22 (Sun, 22 Dec 2019)

  Changed paths:
    M test/Makefile
    A test/get.py

  Log Message:
  -----------
  Add test for indexing lists, tuples and strings

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: cbe2f98ca68285764d31c6ce33855e10700f3043
      https://github.com/keith-packard/snek/commit/cbe2f98ca68285764d31c6ce33855e10700f3043
  Author: Keith Packard <keithp at keithp.com>
  Date:   2019-12-23 (Mon, 23 Dec 2019)

  Changed paths:
    M snek-string.c

  Log Message:
  -----------
  Make string interpolation of '%%' generate '%'

The pointer passed to snek_buf_sprintc was wrong, so the
'%' got lost in space.

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: 9273cb5e5df89d30cfaa33f88729607a38affc34
      https://github.com/keith-packard/snek/commit/9273cb5e5df89d30cfaa33f88729607a38affc34
  Author: Keith Packard <keithp at keithp.com>
  Date:   2019-12-23 (Mon, 23 Dec 2019)

  Changed paths:
    M test/Makefile
    A test/interpolate-str.py

  Log Message:
  -----------
  Add some string intepolation tests

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: 6b4f5e3234c39c1406d80b44c9b17cae9c654245
      https://github.com/keith-packard/snek/commit/6b4f5e3234c39c1406d80b44c9b17cae9c654245
  Author: Keith Packard <keithp at keithp.com>
  Date:   2019-12-24 (Tue, 24 Dec 2019)

  Changed paths:
    M snek-list.c

  Log Message:
  -----------
  Remove extraneous cast

snek_list_data returns snek_poly_t *, so there's no need to
cast the return value.

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: d81bac3ac78a65c6d1276f79011e47aef32e98a0
      https://github.com/keith-packard/snek/commit/d81bac3ac78a65c6d1276f79011e47aef32e98a0
  Author: Keith Packard <keithp at keithp.com>
  Date:   2019-12-24 (Tue, 24 Dec 2019)

  Changed paths:
    M snek-string.c

  Log Message:
  -----------
  Allow format strings longer than 255 bytes

Need to use snek_offset_t to walk format string in
snek_string_interpolate to allow for more than 255 bytes.

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: 53582e585f69a8714bcdf0e96cdf94fa9b89eb69
      https://github.com/keith-packard/snek/commit/53582e585f69a8714bcdf0e96cdf94fa9b89eb69
  Author: Keith Packard <keithp at keithp.com>
  Date:   2019-12-24 (Tue, 24 Dec 2019)

  Changed paths:
    M test/interpolate-str.py

  Log Message:
  -----------
  Add test for long format strings in interpolation

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: fa9a29f59680ef7e124bdd42da4624699a9814aa
      https://github.com/keith-packard/snek/commit/fa9a29f59680ef7e124bdd42da4624699a9814aa
  Author: Keith Packard <keithp at keithp.com>
  Date:   2019-12-24 (Tue, 24 Dec 2019)

  Changed paths:
    M snek-exec.c
    M snek-string.c
    M snek.h

  Log Message:
  -----------
  Add error checking in interpolation

Trailing % is invalid
Missing arg is invalid
Extra arg is invalid

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: 49323682a92fc9978c558c06caa22500b798f476
      https://github.com/keith-packard/snek/commit/49323682a92fc9978c558c06caa22500b798f476
  Author: Keith Packard <keithp at keithp.com>
  Date:   2019-12-24 (Tue, 24 Dec 2019)

  Changed paths:
    M test/Makefile
    A test/interpolate-badformat.py
    A test/interpolate-extra.py
    A test/interpolate-missing.py

  Log Message:
  -----------
  Add tests for invalid string interpolation

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: 3ee308abe8ac65bc02ba77a12618219e4ed5cf24
      https://github.com/keith-packard/snek/commit/3ee308abe8ac65bc02ba77a12618219e4ed5cf24
  Author: Keith Packard <keithp at keithp.com>
  Date:   2019-12-24 (Tue, 24 Dec 2019)

  Changed paths:
    M snek-print.c

  Log Message:
  -----------
  Change dictionary print format to match python3

No space after '{' or before '}'
Add space after ':'

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: 63a5ca2f9df367fdc1d6c6ac075978f692e52e40
      https://github.com/keith-packard/snek/commit/63a5ca2f9df367fdc1d6c6ac075978f692e52e40
  Author: Keith Packard <keithp at keithp.com>
  Date:   2019-12-24 (Tue, 24 Dec 2019)

  Changed paths:
    M test/interpolate-str.py

  Log Message:
  -----------
  Add dictionary to string interpolation tests

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: 278a4fdaf65783179b617833179dd4248a7aef88
      https://github.com/keith-packard/snek/commit/278a4fdaf65783179b617833179dd4248a7aef88
  Author: Keith Packard <keithp at keithp.com>
  Date:   2019-12-26 (Thu, 26 Dec 2019)

  Changed paths:
    M ports/esp32/CMakeLists.txt
    M ports/esp32/Makefile
    M ports/esp32/esp32-idf
    M snek-install.defs

  Log Message:
  -----------
  Get ESP32 to build the right target file

Change the project name
Copy the build result into the esp32 directory
Make the esp32-idf script also look in ~/src

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: 46a119e6e6d74bcd8dddf34d701a5e9e66ca64c4
      https://github.com/keith-packard/snek/commit/46a119e6e6d74bcd8dddf34d701a5e9e66ca64c4
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-01-24 (Fri, 24 Jan 2020)

  Changed paths:
    M Makefile
    A hosts/zip/.gitignore
    A hosts/zip/Makefile

  Log Message:
  -----------
  Add 'zip' host, which creates a zipfile of the portable bits

This includes the examples, documentation and embedded binaries for
all targets.

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: b115dd147af5e2ba9c3e09be7bdb5fe84283ae84
      https://github.com/keith-packard/snek/commit/b115dd147af5e2ba9c3e09be7bdb5fe84283ae84
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-01-24 (Fri, 24 Jan 2020)

  Changed paths:
    M chips/qemu/snek-qemu.defs

  Log Message:
  -----------
  picolibc has switched from --semihost to --oslib=semihost

This picolibc change allows alternate oslib implementations too.

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: e34c9f0b80dd8ff6c31e73cc4ebd891f5208d390
      https://github.com/keith-packard/snek/commit/e34c9f0b80dd8ff6c31e73cc4ebd891f5208d390
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-01-24 (Fri, 24 Jan 2020)

  Changed paths:
    M Makefile

  Log Message:
  -----------
  Don't build the OS release bits by default

This reduces the time building takes by skipping creation of release images.

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: 9621a71e2e27f51a2aa71e269153f366dddb20cb
      https://github.com/keith-packard/snek/commit/9621a71e2e27f51a2aa71e269153f366dddb20cb
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-01-24 (Fri, 24 Jan 2020)

  Changed paths:
    A ports/hifive1revb/snek-metal-builtin.c

  Log Message:
  -----------
  Add missing snek-metal-builtin.c file

This defines some standard interfaces

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: 29d142f9b9f708f4380941bf088fa041232058fd
      https://github.com/keith-packard/snek/commit/29d142f9b9f708f4380941bf088fa041232058fd
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-01-24 (Fri, 24 Jan 2020)

  Changed paths:
    M examples/Makefile

  Log Message:
  -----------
  Add 'clean' target in examples

Needed to avoid errors during 'make clean'

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: e2673feb253415e3edde86ff1b61219636e4cf7e
      https://github.com/keith-packard/snek/commit/e2673feb253415e3edde86ff1b61219636e4cf7e
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-01-24 (Fri, 24 Jan 2020)

  Changed paths:
    M ports/esp32/Makefile

  Log Message:
  -----------
  Add '+' in esp32/Makefile to eliminate make warning

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: 84ac993f2c499328c58217ea07dd49387c1470f5
      https://github.com/keith-packard/snek/commit/84ac993f2c499328c58217ea07dd49387c1470f5
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-01-28 (Tue, 28 Jan 2020)

  Changed paths:
    M snek-base.builtin
    M snek-builtin.c

  Log Message:
  -----------
  Add 'abs' function to core builtins

This seems at least as important as math.sqrt?

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: ad1467093d6993aed197be86c1ff3aea019669c5
      https://github.com/keith-packard/snek/commit/ad1467093d6993aed197be86c1ff3aea019669c5
  Author: Rhys Kidd <rhyskidd at gmail.com>
  Date:   2020-02-13 (Thu, 13 Feb 2020)

  Changed paths:
    M README.md

  Log Message:
  -----------
  Document readline dependency

GNU readline has been a dependency since d319ebd. Document this within the initial build
instructions.

Fixes the following compiler error, due to the missing dependency:

snek-main.c:17:10: fatal error: readline/readline.h: No such file or directory
   17 | #include <readline/readline.h>
      |          ^~~~~~~~~~~~~~~~~~~~~

Fixes: d319ebd ("Track parsing status to allow separate middle-of-statement prompts")
Signed-off-by: Rhys Kidd <rhyskidd at gmail.com>
Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: 54ab0d8c1cabbd73350492b0f030bd9b1c73854f
      https://github.com/keith-packard/snek/commit/54ab0d8c1cabbd73350492b0f030bd9b1c73854f
  Author: Rhys Kidd <rhyskidd at gmail.com>
  Date:   2020-02-13 (Thu, 13 Feb 2020)

  Changed paths:
    M README.md
    M ports/duemilanove/Makefile
    M ports/itsybitsy3v/Makefile
    M ports/itsybitsy5v/Makefile
    M ports/mega/Makefile
    M ports/uduino/Makefile

  Log Message:
  -----------
  Document dependency on a GNU awk extension

strtonum() is a GNU awk (gawk)-only extension. It is not portable, and other
implementations of awk may not support it.

Accordingly, document the dependency upon gawk specifically, and ensure snek
only calls gawk in it's Makefiles.

See further:
  - https://www.gnu.org/software/gawk/manual/html_node/Strtonum-Function.html
  - https://www.gnu.org/software/gawk/manual/html_node/String-Functions.html#index-strtonum_0028_0029-function-_0028gawk_0029

Signed-off-by: Rhys Kidd <rhyskidd at gmail.com>
Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: 411e10ff307e5ac6ab83d7a864be59f50243895a
      https://github.com/keith-packard/snek/commit/411e10ff307e5ac6ab83d7a864be59f50243895a
  Author: Rhys Kidd <rhyskidd at gmail.com>
  Date:   2020-02-13 (Thu, 13 Feb 2020)

  Changed paths:
    M hosts/windows/snek-windows.c
    M ports/posix/snek-main.c

  Log Message:
  -----------
  Close FILE handles with fclose(), as reported by Valgrind

Whilst normal program exit will see open files closed by the operating system,
this is both an implementation detail that may not hold everywhere and leads
to unnecessary message reports in a Valgrind run of snek's test suite.

Using fclose() paired with all fopen() is a good defensive coding practice.

Valgrind heap memory report:

$ valgrind --leak-check=full --show-leak-kinds=all ./ports/posix/snek test/for-range.py
==31140== Memcheck, a memory error detector
==31140== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==31140== Using Valgrind-3.15.0 and LibVEX; rerun with -h for copyright info
==31140== Command: ./ports/posix/snek test/for-range.py
==31140==
==31140==
==31140== HEAP SUMMARY:
==31140==     in use at exit: 488 bytes in 1 blocks
==31140==   total heap usage: 2 allocs, 1 frees, 4,584 bytes allocated
==31140==
==31140== 488 bytes in 1 blocks are still reachable in loss record 1 of 1
==31140==    at 0x483A7F3: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==31140==    by 0x4A8B9FD: __fopen_internal (iofopen.c:65)
==31140==    by 0x4A8B9FD: fopen@@GLIBC_2.2.5 (iofopen.c:86)
==31140==    by 0x10B9CB: main (snek-main.c:108)
==31140==
==31140== LEAK SUMMARY:
==31140==    definitely lost: 0 bytes in 0 blocks
==31140==    indirectly lost: 0 bytes in 0 blocks
==31140==      possibly lost: 0 bytes in 0 blocks
==31140==    still reachable: 488 bytes in 1 blocks
==31140==         suppressed: 0 bytes in 0 blocks
==31140==
==31140== For lists of detected and suppressed errors, rerun with: -s
==31140== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)

Signed-off-by: Rhys Kidd <rhyskidd at gmail.com>
Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: c7cc54e299a9d2d75b6d30d02ea8f634855a7313
      https://github.com/keith-packard/snek/commit/c7cc54e299a9d2d75b6d30d02ea8f634855a7313
  Author: Rhys Kidd <rhyskidd at gmail.com>
  Date:   2020-02-13 (Thu, 13 Feb 2020)

  Changed paths:
    M test/Makefile

  Log Message:
  -----------
  Fix make check error reporting text

Without this escaping, the output from a (known failing) make check
run is:

$ make check
Running test andor.py.
    pass python3
    pass snek
../ports/qemu-arm/snek-arm: 23: qemu-system-arm: not found
    ***************** aselang fail *********************
    ...

Note the final line, which should instead be reporting:

$ make check
Running test andor.py.
    pass python3
    pass snek
../ports/qemu-arm/snek-arm: 23: qemu-system-arm: not found
    ***************** snek-arm fail *********************
    ...

$ make --version
GNU Make 4.2.1
Built for x86_64-pc-linux-gnu

Signed-off-by: Rhys Kidd <rhyskidd at gmail.com>
Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: ea1c97a275d442675b28ca83a4734a7a8681ae2f
      https://github.com/keith-packard/snek/commit/ea1c97a275d442675b28ca83a4734a7a8681ae2f
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-02-13 (Thu, 13 Feb 2020)

  Changed paths:
    M ports/qemu-arm/snek-arm.in
    M ports/qemu-riscv/snek-riscv.in

  Log Message:
  -----------
  Update qemu command lines to support 4.2.0

Qemu now needs the accel=tcg parameter in the machine flag, and riscv
wants -bios none added

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: e85084dffbabca30e83d6913f968f50fa2a2ffce
      https://github.com/keith-packard/snek/commit/e85084dffbabca30e83d6913f968f50fa2a2ffce
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-02-15 (Sat, 15 Feb 2020)

  Changed paths:
    M snek-lex.c

  Log Message:
  -----------
  Return invalid token on lex error

When the lexer detects an error, such as an invalid character sequence
or out of memory, return an invalid token instead of TOKEN_NONE, which
just causes the parser to lex another token.

We'll use FIRST_NON_TERMINAL as that's never a valid token.

Reported-by: Helmut Grohne <helmut at subdivi.de>
Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: 2f00cdcd5679cf0d6acf980ff62319bc6ac01fc9
      https://github.com/keith-packard/snek/commit/2f00cdcd5679cf0d6acf980ff62319bc6ac01fc9
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-02-15 (Sat, 15 Feb 2020)

  Changed paths:
    M test/Makefile
    A test/lex-bang.py

  Log Message:
  -----------
  Add test for lexer returning error on invalid token

'!' is not a valid token, so the lexer should return an error when it
occurs in the input.

Reported-by: Helmut Grohne <helmut at subdivi.de>
Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: 6fa5b7875fb226f409a9ece16562bf070025d707
      https://github.com/keith-packard/snek/commit/6fa5b7875fb226f409a9ece16562bf070025d707
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-02-15 (Sat, 15 Feb 2020)

  Changed paths:
    M doc/snek.adoc

  Log Message:
  -----------
  doc: '!' is not the not operator, not is

Python uses words for boolean operators instead of C's punctuation.

Reported-by: Helmut Grohne <helmut at subdivi.de>
Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: 7f37a5801091cfd722d84c2139d8a11263f5feda
      https://github.com/keith-packard/snek/commit/7f37a5801091cfd722d84c2139d8a11263f5feda
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-02-15 (Sat, 15 Feb 2020)

  Changed paths:
    M doc/snek.adoc

  Log Message:
  -----------
  doc: Add a bunch of missing operators

and, or, is, is not, in, not in were all missing from the language
reference.

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: cec2a26b78bab7f4ad4a544e7010ca99a60ab576
      https://github.com/keith-packard/snek/commit/cec2a26b78bab7f4ad4a544e7010ca99a60ab576
  Author: Jonathan <vanillajonathan at users.noreply.github.com>
  Date:   2020-02-18 (Tue, 18 Feb 2020)

  Changed paths:
    M snekde/snekde.py

  Log Message:
  -----------
  Update snekde.py


  Commit: 0ce59de07143f9ada113edc5f65f9e3991c1d637
      https://github.com/keith-packard/snek/commit/0ce59de07143f9ada113edc5f65f9e3991c1d637
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-02-18 (Tue, 18 Feb 2020)

  Changed paths:
    M snek-gram.ll

  Log Message:
  -----------
  Allow trailing comma in tuples, lists and parameter lists

Python allows a trailing comma here, and black adds them
when wrapping them across multiple lines, so we should also
allow them in snek.

Note that this requires lola version 1.3 as previous lola versions
could not handle grammars with mutually recursive productions

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: 0dd4cf5bc25f82b82837c6ec264e9470b8b1b8f0
      https://github.com/keith-packard/snek/commit/0dd4cf5bc25f82b82837c6ec264e9470b8b1b8f0
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-02-18 (Tue, 18 Feb 2020)

  Changed paths:
    M snek-gram.ll

  Log Message:
  -----------
  Allow trailing comma on dictionaries

Just like tuples, lists, and parameter lists, dictionaries
may have a trailing comma after the last item

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: 886e65a99edadbe6829252a4beb4e463d2cbbd86
      https://github.com/keith-packard/snek/commit/886e65a99edadbe6829252a4beb4e463d2cbbd86
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-02-18 (Tue, 18 Feb 2020)

  Changed paths:
    M test/Makefile
    R test/actual-named-first.py
    R test/andor.py
    R test/arg-dup1.py
    R test/arg-dup2.py
    R test/arg-unknown.py
    R test/args-missing.py
    R test/args.py
    R test/assert-fail.py
    R test/assert-success.py
    R test/dict.py
    R test/equal_is.py
    A test/fail-actual-named-first.py
    A test/fail-arg-dup1.py
    A test/fail-arg-dup2.py
    A test/fail-arg-unknown.py
    A test/fail-args-missing.py
    A test/fail-assert-fail.py
    A test/fail-formal-named-first.py
    A test/fail-interpolate-badformat.py
    A test/fail-interpolate-extra.py
    A test/fail-interpolate-missing.py
    A test/fail-range-named.py
    A test/fail-scoping-no-decl.py
    A test/fail-syntax-lex-bang.py
    A test/fail-syntax-list-named.py
    A test/fail-syntax-tuple-named.py
    R test/float.py
    R test/for-array.py
    R test/for-break.py
    R test/for-nested.py
    R test/for-range.py
    R test/for-string.py
    R test/formal-named-first.py
    R test/get.py
    R test/global.py
    R test/if.py
    R test/int.py
    R test/interpolate-badformat.py
    R test/interpolate-extra.py
    R test/interpolate-list.py
    R test/interpolate-missing.py
    R test/interpolate-str.py
    R test/lex-bang.py
    R test/list-named.py
    R test/list.py
    R test/math.py
    R test/none.py
    R test/op.py
    A test/pass-andor.py
    A test/pass-args.py
    A test/pass-assert-success.py
    A test/pass-dict.py
    A test/pass-equal_is.py
    A test/pass-float.py
    A test/pass-for-array.py
    A test/pass-for-break.py
    A test/pass-for-nested.py
    A test/pass-for-range.py
    A test/pass-for-string.py
    A test/pass-get.py
    A test/pass-global.py
    A test/pass-if.py
    A test/pass-int.py
    A test/pass-interpolate-list.py
    A test/pass-interpolate-str.py
    A test/pass-list.py
    A test/pass-math.py
    A test/pass-none.py
    A test/pass-op.py
    A test/pass-range.py
    A test/pass-scoping-global.py
    A test/pass-scoping-local.py
    A test/pass-slice.py
    A test/pass-while-break.py
    A test/pass-while-else.py
    A test/pass-while.py
    R test/range-named.py
    R test/range.py
    R test/scoping-global.py
    R test/scoping-local.py
    R test/scoping-no-decl.py
    R test/slice.py
    R test/tuple-named.py
    R test/while-break.py
    R test/while-else.py
    R test/while.py

  Log Message:
  -----------
  test: Rename tests to make clear their intended effect

There are three classes now, indicated by the leading word(s) in the name:

	pass-		This test should pass
	fail-syntax-	This test should fail with a syntax error
	fail-		This test should fail

The syntax tests are special because we cannot re-format them with
'black' due to the intentional syntax errors.

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: e15b09eefd0c91f5d920a011c2fc7ceedcc9c197
      https://github.com/keith-packard/snek/commit/e15b09eefd0c91f5d920a011c2fc7ceedcc9c197
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-02-18 (Tue, 18 Feb 2020)

  Changed paths:
    M Makefile

  Log Message:
  -----------
  Cause 'make all' to fail if any subdir fails

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: 3108d0006234a0c71fa9d6af7ccce331a06ec6b4
      https://github.com/keith-packard/snek/commit/3108d0006234a0c71fa9d6af7ccce331a06ec6b4
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-02-18 (Tue, 18 Feb 2020)

  Changed paths:
    M snekde/Makefile
    M snekde/snekde.py

  Log Message:
  -----------
  snekde: Reformat with black. Add 'make check' rule to keep things clean

Let's keep snekde.py formatted with black.

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: 65dc8a686633f9cc6d0707c3c875996f7842e10f
      https://github.com/keith-packard/snek/commit/65dc8a686633f9cc6d0707c3c875996f7842e10f
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-02-18 (Tue, 18 Feb 2020)

  Changed paths:
    M examples/blink.py
    M examples/hanoi.py
    M examples/morse.py
    M examples/neopixel.py
    M examples/neopixels.py
    M examples/snek-bsd.py
    M examples/snek-car.py
    M examples/snek.py
    M examples/track-light.py

  Log Message:
  -----------
  examples: Reformat with 'black'

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: 1b67d8063dd92cca5a3dbbc7cae727673ec05ca0
      https://github.com/keith-packard/snek/commit/1b67d8063dd92cca5a3dbbc7cae727673ec05ca0
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-02-18 (Tue, 18 Feb 2020)

  Changed paths:
    M test/fail-actual-named-first.py
    M test/fail-arg-dup1.py
    M test/fail-arg-dup2.py
    M test/fail-arg-unknown.py
    M test/fail-args-missing.py
    M test/fail-formal-named-first.py
    M test/fail-interpolate-badformat.py
    M test/fail-interpolate-extra.py
    M test/fail-interpolate-missing.py
    M test/fail-scoping-no-decl.py
    M test/pass-andor.py
    M test/pass-args.py
    M test/pass-dict.py
    M test/pass-equal_is.py
    M test/pass-float.py
    M test/pass-for-array.py
    M test/pass-for-break.py
    M test/pass-for-nested.py
    M test/pass-for-range.py
    M test/pass-for-string.py
    M test/pass-get.py
    M test/pass-global.py
    M test/pass-if.py
    M test/pass-interpolate-str.py
    M test/pass-list.py
    M test/pass-math.py
    M test/pass-none.py
    M test/pass-op.py
    M test/pass-range.py
    M test/pass-scoping-global.py
    M test/pass-scoping-local.py
    M test/pass-slice.py
    M test/pass-while-break.py

  Log Message:
  -----------
  test: Reformat with black

Make the tests follow python coding conventions.

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: d1e7d72282bc1160f325427649277825caea8c1c
      https://github.com/keith-packard/snek/commit/d1e7d72282bc1160f325427649277825caea8c1c
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-02-18 (Tue, 18 Feb 2020)

  Changed paths:
    M ao/make-product.py
    M chips/samd21/uf2conv.py
    M ports/esp32/loadable_elf_example_test.py

  Log Message:
  -----------
  Reformat python utilities with black

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: d6603e490039df2425ab7fe1de4250c9f621ebfa
      https://github.com/keith-packard/snek/commit/d6603e490039df2425ab7fe1de4250c9f621ebfa
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-02-18 (Tue, 18 Feb 2020)

  Changed paths:
    M Makefile

  Log Message:
  -----------
  Check python formatting in 'make check'.

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: 2b817d11c813930a748e356d90fecadedea43a37
      https://github.com/keith-packard/snek/commit/2b817d11c813930a748e356d90fecadedea43a37
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-02-18 (Tue, 18 Feb 2020)

  Changed paths:
    M test/Makefile
    A test/pass-trailing-comma.py

  Log Message:
  -----------
  test: Check trailing comma support

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: d7aaf6e24637195892fa1f7a5a91f871a071b3f4
      https://github.com/keith-packard/snek/commit/d7aaf6e24637195892fa1f7a5a91f871a071b3f4
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-02-19 (Wed, 19 Feb 2020)

  Changed paths:
    M snek-builtin.py
    M snek-string.c
    M snek.h

  Log Message:
  -----------
  Allow 'snek_string_build' to be used when constructing builtins

This defines a new string function which constructs a snek string from
a provided string constant. If this is referenced from the constructor
for a builtin variable, it gets automatically included in the build.

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: abb0d37b838b41bb10b479f29c393eebfd4226d4
      https://github.com/keith-packard/snek/commit/abb0d37b838b41bb10b479f29c393eebfd4226d4
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-02-19 (Wed, 19 Feb 2020)

  Changed paths:
    M snek-exec.c

  Log Message:
  -----------
  Save/restore stack pointer in snek_exec

We were setting it back to 0 on exit, which means that nothing outside
of exec may use the stack.

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: 059d3397f772da5cb3d7e4c4fe29bbbf9d3fc6a0
      https://github.com/keith-packard/snek/commit/059d3397f772da5cb3d7e4c4fe29bbbf9d3fc6a0
  Author: Mikhail Gusarov <dottedmag at dottedmag.net>
  Date:   2020-02-20 (Thu, 20 Feb 2020)

  Changed paths:
    A ports/ev3/.clang-format
    A ports/ev3/.dir-locals.el
    A ports/ev3/.gitignore
    A ports/ev3/Makefile
    A ports/ev3/snek-ev3.builtin
    A ports/ev3/snek-ev3.h
    A ports/ev3/snek-main.c
    M snek-install.defs

  Log Message:
  -----------
  Add a skeleton for Lego EV3 port

Signed-off-by: Mikhail Gusarov <dottedmag at dottedmag.net>
Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: 580b68b70129b97950cd1aa754453c4a0e7df0b7
      https://github.com/keith-packard/snek/commit/580b68b70129b97950cd1aa754453c4a0e7df0b7
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-02-20 (Thu, 20 Feb 2020)

  Changed paths:
    M ports/ev3/Makefile

  Log Message:
  -----------
  ports/ev3: Use vpath to find snek-posix.c

Using a path in $(SRCS) leads to sticking the .o file in the posix
directory, which smashes the file used to build the posix snek
version.

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: ab73f2680431a8d18b1ddb4f16f8026853e54856
      https://github.com/keith-packard/snek/commit/ab73f2680431a8d18b1ddb4f16f8026853e54856
  Author: Mikhail Gusarov <dottedmag at dottedmag.net>
  Date:   2020-02-21 (Fri, 21 Feb 2020)

  Changed paths:
    M doc/snek.adoc

  Log Message:
  -----------
  Add a stub section for Snek on EV3 to refence manual

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: 1c47436155c29f19f941bd0313e2cbdae13627a7
      https://github.com/keith-packard/snek/commit/1c47436155c29f19f941bd0313e2cbdae13627a7
  Author: Mikhail Gusarov <dottedmag at dottedmag.net>
  Date:   2020-02-21 (Fri, 21 Feb 2020)

  Changed paths:
    M ports/ev3/snek-main.c

  Log Message:
  -----------
  Fix extra newline after prompt

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: 066ba295d176d7206de7e322a8c981ddafdd5187
      https://github.com/keith-packard/snek/commit/066ba295d176d7206de7e322a8c981ddafdd5187
  Author: Mikhail Gusarov <dottedmag at dottedmag.net>
  Date:   2020-02-21 (Fri, 21 Feb 2020)

  Changed paths:
    M ports/ev3/snek-main.c

  Log Message:
  -----------
  fgets() does not strip '\n' from the input, account for it

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: f2cf43e8a52be6aae837ef55b83085aa807fb107
      https://github.com/keith-packard/snek/commit/f2cf43e8a52be6aae837ef55b83085aa807fb107
  Author: Mikhail Gusarov <dottedmag at dottedmag.net>
  Date:   2020-02-21 (Fri, 21 Feb 2020)

  Changed paths:
    M ports/ev3/Makefile
    A ports/ev3/sensors.c
    M ports/ev3/snek-ev3.builtin
    A ports/ev3/utils.c
    A ports/ev3/utils.h

  Log Message:
  -----------
  Implement touch, ultrasound, color sensors for Lego EV3

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: d839ef8118e96ed99aa28ee5c59f18846e7876ad
      https://github.com/keith-packard/snek/commit/d839ef8118e96ed99aa28ee5c59f18846e7876ad
  Author: Mikhail Gusarov <dottedmag at dottedmag.net>
  Date:   2020-02-21 (Fri, 21 Feb 2020)

  Changed paths:
    M doc/snek.adoc

  Log Message:
  -----------
  Document Lego EV3 sensors

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: 02cfd5c39bef03404d6098d8c5214e8ed3ea4173
      https://github.com/keith-packard/snek/commit/02cfd5c39bef03404d6098d8c5214e8ed3ea4173
  Author: Mikhail Gusarov <dottedmag at dottedmag.net>
  Date:   2020-02-21 (Fri, 21 Feb 2020)

  Changed paths:
    M ports/ev3/Makefile
    M ports/ev3/sensors.c
    A ports/ev3/sensors.h
    M ports/ev3/snek-main.c

  Log Message:
  -----------
  Preallocate string color constants on startup

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: f277334663a10db8a7475f53f8f8075576a48354
      https://github.com/keith-packard/snek/commit/f277334663a10db8a7475f53f8f8075576a48354
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-02-22 (Sat, 22 Feb 2020)

  Changed paths:
    M doc/snek-book-theme.yml
    M doc/snek-theme.yml

  Log Message:
  -----------
  Open Sans is missing the 'circle' character (◦). Use Lato instead

Use the 'fallback font' mechanism.

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: 6ea1bcb927f208b62fe27809a0c0a1441a06a953
      https://github.com/keith-packard/snek/commit/6ea1bcb927f208b62fe27809a0c0a1441a06a953
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-02-22 (Sat, 22 Feb 2020)

  Changed paths:
    A doc/snekboard/Makefile
    A doc/snekboard/snekboard-in-enclosure.jpg
    A doc/snekboard/snekboard-label.jpg
    A doc/snekboard/snekboard-sensors.jpg
    A doc/snekboard/snekboard-wired.jpg
    A doc/snekboard/snekboard.adoc
    A doc/snekboard/snekboard.png

  Log Message:
  -----------
  Add snekboard manual

This covers the hardware and offers an introduction to using it with Snek.

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: 84c4960c2e5ac1e926a9e09bab52666d4dc26297
      https://github.com/keith-packard/snek/commit/84c4960c2e5ac1e926a9e09bab52666d4dc26297
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-02-22 (Sat, 22 Feb 2020)

  Changed paths:
    A doc/models/line-bug/21980.dat.png
    A doc/models/line-bug/22253c02.dat.png
    A doc/models/line-bug/2654.dat.png
    A doc/models/line-bug/3001.dat.png
    A doc/models/line-bug/32073.dat.png
    A doc/models/line-bug/3647.dat.png
    A doc/models/line-bug/3648b.dat.png
    A doc/models/line-bug/3713.dat.png
    A doc/models/line-bug/3738.dat.png
    A doc/models/line-bug/3895.dat.png
    A doc/models/line-bug/3956.dat.png
    A doc/models/line-bug/4459.dat.png
    A doc/models/line-bug/4519.dat.png
    A doc/models/line-bug/6590.dat.png
    A doc/models/line-bug/Line-Bug-01.html
    A doc/models/line-bug/Line-Bug-01.png
    A doc/models/line-bug/Line-Bug-02.html
    A doc/models/line-bug/Line-Bug-02.png
    A doc/models/line-bug/Line-Bug-03.html
    A doc/models/line-bug/Line-Bug-03.png
    A doc/models/line-bug/Line-Bug-04.html
    A doc/models/line-bug/Line-Bug-04.png
    A doc/models/line-bug/Line-Bug-05.html
    A doc/models/line-bug/Line-Bug-05.png
    A doc/models/line-bug/Line-Bug-06.html
    A doc/models/line-bug/Line-Bug-06.png
    A doc/models/line-bug/Line-Bug-07.html
    A doc/models/line-bug/Line-Bug-07.png
    A doc/models/line-bug/Line-Bug-08.html
    A doc/models/line-bug/Line-Bug-08.png
    A doc/models/line-bug/Line-Bug-09.html
    A doc/models/line-bug/Line-Bug-09.png
    A doc/models/line-bug/Line-Bug-10.html
    A doc/models/line-bug/Line-Bug-10.png
    A doc/models/line-bug/Line-Bug-11.html
    A doc/models/line-bug/Line-Bug-11.png
    A doc/models/line-bug/Line-Bug-12.html
    A doc/models/line-bug/Line-Bug-12.png
    A doc/models/line-bug/Line-Bug-13.html
    A doc/models/line-bug/Line-Bug-13.png
    A doc/models/line-bug/Line-Bug-14.html
    A doc/models/line-bug/Line-Bug-14.png
    A doc/models/line-bug/Line-Bug-15.html
    A doc/models/line-bug/Line-Bug-15.png
    A doc/models/line-bug/Line-Bug-16.html
    A doc/models/line-bug/Line-Bug-16.png
    A doc/models/line-bug/Line-Bug.ldr
    A doc/models/line-bug/Makefile
    A doc/models/line-bug/draw-bug.5c
    A doc/models/line-bug/left-turn.svg
    A doc/models/line-bug/line-bug-top.png
    A doc/models/line-bug/line-bug.jpg
    A doc/models/line-bug/make-step
    A doc/models/line-bug/make-steps
    A doc/models/line-bug/right-turn.svg
    A doc/models/line-bug/snek-line-bug.adoc

  Log Message:
  -----------
  Add line-bug lesson

Signed-off-by: Keith Packard <keithp at keithp.com>

Clean up snek-line-bug doc build

Reformat the code examples

Signed-off-by: Keith Packard <keithp at keithp.com>

Add leocad model for line-bug

Allow line-bug 'make-steps' program to be run from elsewhere

Locate the make-step program relative to the make-steps command path

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: 5cdc8b313e0affe2cb2a195b4f1715f7a5cbf717
      https://github.com/keith-packard/snek/commit/5cdc8b313e0affe2cb2a195b4f1715f7a5cbf717
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-02-22 (Sat, 22 Feb 2020)

  Changed paths:
    M doc/snekboard/snekboard.adoc

  Log Message:
  -----------
  Improve switch section of snekboard lesson

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: 8c573e3c926eca53bff8dd458939d64ffc6b68d6
      https://github.com/keith-packard/snek/commit/8c573e3c926eca53bff8dd458939d64ffc6b68d6
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-02-22 (Sat, 22 Feb 2020)

  Changed paths:
    A doc/models/bumper-car/21980.dat.png
    A doc/models/bumper-car/22253c02.dat.png
    A doc/models/bumper-car/2431dm9.dat.png
    A doc/models/bumper-car/2654.dat.png
    A doc/models/bumper-car/3001.dat.png
    A doc/models/bumper-car/32073.dat.png
    A doc/models/bumper-car/3647.dat.png
    A doc/models/bumper-car/3648b.dat.png
    A doc/models/bumper-car/3703.dat.png
    A doc/models/bumper-car/3713.dat.png
    A doc/models/bumper-car/3738.dat.png
    A doc/models/bumper-car/4459.dat.png
    A doc/models/bumper-car/4519.dat.png
    A doc/models/bumper-car/6590.dat.png
    A doc/models/bumper-car/Bumper-Car-01.html
    A doc/models/bumper-car/Bumper-Car-01.png
    A doc/models/bumper-car/Bumper-Car-02.html
    A doc/models/bumper-car/Bumper-Car-02.png
    A doc/models/bumper-car/Bumper-Car-03.html
    A doc/models/bumper-car/Bumper-Car-03.png
    A doc/models/bumper-car/Bumper-Car-04.html
    A doc/models/bumper-car/Bumper-Car-04.png
    A doc/models/bumper-car/Bumper-Car-05.html
    A doc/models/bumper-car/Bumper-Car-05.png
    A doc/models/bumper-car/Bumper-Car-06.html
    A doc/models/bumper-car/Bumper-Car-06.png
    A doc/models/bumper-car/Bumper-Car-07.html
    A doc/models/bumper-car/Bumper-Car-07.png
    A doc/models/bumper-car/Bumper-Car-08.html
    A doc/models/bumper-car/Bumper-Car-08.png
    A doc/models/bumper-car/Bumper-Car-09.html
    A doc/models/bumper-car/Bumper-Car-09.png
    A doc/models/bumper-car/Bumper-Car-10.html
    A doc/models/bumper-car/Bumper-Car-10.png
    A doc/models/bumper-car/Bumper-Car-11.html
    A doc/models/bumper-car/Bumper-Car-11.png
    A doc/models/bumper-car/Bumper-Car-12.html
    A doc/models/bumper-car/Bumper-Car-12.png
    A doc/models/bumper-car/Bumper-Car-13.html
    A doc/models/bumper-car/Bumper-Car-13.png
    A doc/models/bumper-car/Bumper-Car-14.html
    A doc/models/bumper-car/Bumper-Car-14.png
    A doc/models/bumper-car/Bumper-Car-15.html
    A doc/models/bumper-car/Bumper-Car-15.png
    A doc/models/bumper-car/Bumper-Car-16.html
    A doc/models/bumper-car/Bumper-Car-16.png
    A doc/models/bumper-car/Bumper-Car-index.adoc
    A doc/models/bumper-car/Bumper-Car-index.html
    A doc/models/bumper-car/Bumper-Car.ldr
    A doc/models/bumper-car/Makefile
    A doc/models/bumper-car/snek-bumper-car.adoc

  Log Message:
  -----------
  Add bumper car lesson (not done yet)

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: d900d18d081f5345311c4e85ea2359e92cf41d89
      https://github.com/keith-packard/snek/commit/d900d18d081f5345311c4e85ea2359e92cf41d89
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-02-22 (Sat, 22 Feb 2020)

  Changed paths:
    A doc/models/washing-machine/21980.dat.png
    A doc/models/washing-machine/3003.dat.png
    A doc/models/washing-machine/3022.dat.png
    A doc/models/washing-machine/3023.dat.png
    A doc/models/washing-machine/3034.dat.png
    A doc/models/washing-machine/3039.dat.png
    A doc/models/washing-machine/3040b.dat.png
    A doc/models/washing-machine/3460.dat.png
    A doc/models/washing-machine/3482.dat.png
    A doc/models/washing-machine/3634.dat.png
    A doc/models/washing-machine/3660.dat.png
    A doc/models/washing-machine/3666.dat.png
    A doc/models/washing-machine/3700.dat.png
    A doc/models/washing-machine/3701.dat.png
    A doc/models/washing-machine/3702.dat.png
    A doc/models/washing-machine/3738.dat.png
    A doc/models/washing-machine/3830.dat.png
    A doc/models/washing-machine/3831.dat.png
    A doc/models/washing-machine/3894.dat.png
    A doc/models/washing-machine/3895.dat.png
    A doc/models/washing-machine/41539.dat.png
    A doc/models/washing-machine/4459.dat.png
    A doc/models/washing-machine/4519.dat.png
    A doc/models/washing-machine/5306.dat.png
    A doc/models/washing-machine/62498c02.dat.png
    A doc/models/washing-machine/75973.dat.png
    A doc/models/washing-machine/879.dat.png
    A doc/models/washing-machine/Makefile
    A doc/models/washing-machine/snek-washing-machine.adoc
    A doc/models/washing-machine/washing-machine-01.html
    A doc/models/washing-machine/washing-machine-01.png
    A doc/models/washing-machine/washing-machine-02.html
    A doc/models/washing-machine/washing-machine-02.png
    A doc/models/washing-machine/washing-machine-03.html
    A doc/models/washing-machine/washing-machine-03.png
    A doc/models/washing-machine/washing-machine-04.html
    A doc/models/washing-machine/washing-machine-04.png
    A doc/models/washing-machine/washing-machine-05.html
    A doc/models/washing-machine/washing-machine-05.png
    A doc/models/washing-machine/washing-machine-06.html
    A doc/models/washing-machine/washing-machine-06.png
    A doc/models/washing-machine/washing-machine-07.html
    A doc/models/washing-machine/washing-machine-07.png
    A doc/models/washing-machine/washing-machine-08.html
    A doc/models/washing-machine/washing-machine-08.png
    A doc/models/washing-machine/washing-machine-09.html
    A doc/models/washing-machine/washing-machine-09.png
    A doc/models/washing-machine/washing-machine-10.html
    A doc/models/washing-machine/washing-machine-10.png
    A doc/models/washing-machine/washing-machine-11.html
    A doc/models/washing-machine/washing-machine-11.png
    A doc/models/washing-machine/washing-machine-12.html
    A doc/models/washing-machine/washing-machine-12.png
    A doc/models/washing-machine/washing-machine-13.html
    A doc/models/washing-machine/washing-machine-13.png
    A doc/models/washing-machine/washing-machine-14.html
    A doc/models/washing-machine/washing-machine-14.png
    A doc/models/washing-machine/washing-machine-15.html
    A doc/models/washing-machine/washing-machine-15.png
    A doc/models/washing-machine/washing-machine-16.html
    A doc/models/washing-machine/washing-machine-16.png
    A doc/models/washing-machine/washing-machine-17.html
    A doc/models/washing-machine/washing-machine-17.png
    A doc/models/washing-machine/washing-machine-18.html
    A doc/models/washing-machine/washing-machine-18.png
    A doc/models/washing-machine/washing-machine-19.html
    A doc/models/washing-machine/washing-machine-19.png
    A doc/models/washing-machine/washing-machine.jpg
    A doc/models/washing-machine/washing-machine.ldr

  Log Message:
  -----------
  Add washing machine lesson (not done yet)

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: ea2ed8a6e0e6103e655c7daad0d2036fdb513400
      https://github.com/keith-packard/snek/commit/ea2ed8a6e0e6103e655c7daad0d2036fdb513400
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-02-22 (Sat, 22 Feb 2020)

  Changed paths:
    A doc/fonts/Lato-Medium.ttf
    A doc/lessons/lesson-1/Makefile
    A doc/lessons/lesson-1/snekboard-in-enclosure.jpg
    A doc/lessons/lesson-1/snekboard-label.jpg
    A doc/lessons/lesson-1/snekboard-sensors.jpg
    A doc/lessons/lesson-1/snekboard-wired.jpg
    A doc/lessons/lesson-1/snekboard.adoc
    A doc/lessons/lesson-1/snekboard.png
    A doc/lessons/lesson-2/21980.dat.png
    A doc/lessons/lesson-2/22253c02.dat.png
    A doc/lessons/lesson-2/2654.dat.png
    A doc/lessons/lesson-2/3001.dat.png
    A doc/lessons/lesson-2/32073.dat.png
    A doc/lessons/lesson-2/3647.dat.png
    A doc/lessons/lesson-2/3648b.dat.png
    A doc/lessons/lesson-2/3713.dat.png
    A doc/lessons/lesson-2/3738.dat.png
    A doc/lessons/lesson-2/3895.dat.png
    A doc/lessons/lesson-2/3956.dat.png
    A doc/lessons/lesson-2/4459.dat.png
    A doc/lessons/lesson-2/4519.dat.png
    A doc/lessons/lesson-2/6590.dat.png
    A doc/lessons/lesson-2/Line-Bug-01.html
    A doc/lessons/lesson-2/Line-Bug-01.png
    A doc/lessons/lesson-2/Line-Bug-02.html
    A doc/lessons/lesson-2/Line-Bug-02.png
    A doc/lessons/lesson-2/Line-Bug-03.html
    A doc/lessons/lesson-2/Line-Bug-03.png
    A doc/lessons/lesson-2/Line-Bug-04.html
    A doc/lessons/lesson-2/Line-Bug-04.png
    A doc/lessons/lesson-2/Line-Bug-05.html
    A doc/lessons/lesson-2/Line-Bug-05.png
    A doc/lessons/lesson-2/Line-Bug-06.html
    A doc/lessons/lesson-2/Line-Bug-06.png
    A doc/lessons/lesson-2/Line-Bug-07.html
    A doc/lessons/lesson-2/Line-Bug-07.png
    A doc/lessons/lesson-2/Line-Bug-08.html
    A doc/lessons/lesson-2/Line-Bug-08.png
    A doc/lessons/lesson-2/Line-Bug-09.html
    A doc/lessons/lesson-2/Line-Bug-09.png
    A doc/lessons/lesson-2/Line-Bug-10.html
    A doc/lessons/lesson-2/Line-Bug-10.png
    A doc/lessons/lesson-2/Line-Bug-11.html
    A doc/lessons/lesson-2/Line-Bug-11.png
    A doc/lessons/lesson-2/Line-Bug-12.html
    A doc/lessons/lesson-2/Line-Bug-12.png
    A doc/lessons/lesson-2/Line-Bug-13.html
    A doc/lessons/lesson-2/Line-Bug-13.png
    A doc/lessons/lesson-2/Line-Bug-14.html
    A doc/lessons/lesson-2/Line-Bug-14.png
    A doc/lessons/lesson-2/Line-Bug-15.html
    A doc/lessons/lesson-2/Line-Bug-15.png
    A doc/lessons/lesson-2/Line-Bug-16.html
    A doc/lessons/lesson-2/Line-Bug-16.png
    A doc/lessons/lesson-2/Line-Bug.ldr
    A doc/lessons/lesson-2/Makefile
    A doc/lessons/lesson-2/draw-bug.5c
    A doc/lessons/lesson-2/left-turn.svg
    A doc/lessons/lesson-2/line-bug-top.png
    A doc/lessons/lesson-2/line-bug.adoc
    A doc/lessons/lesson-2/line-bug.jpg
    A doc/lessons/lesson-2/make-step
    A doc/lessons/lesson-2/make-steps
    A doc/lessons/lesson-2/right-turn.svg
    A doc/lessons/lesson-3/21980.dat.png
    A doc/lessons/lesson-3/22253c02.dat.png
    A doc/lessons/lesson-3/2431dm9.dat.png
    A doc/lessons/lesson-3/2654.dat.png
    A doc/lessons/lesson-3/3001.dat.png
    A doc/lessons/lesson-3/32073.dat.png
    A doc/lessons/lesson-3/3647.dat.png
    A doc/lessons/lesson-3/3648b.dat.png
    A doc/lessons/lesson-3/3703.dat.png
    A doc/lessons/lesson-3/3713.dat.png
    A doc/lessons/lesson-3/3738.dat.png
    A doc/lessons/lesson-3/4459.dat.png
    A doc/lessons/lesson-3/4519.dat.png
    A doc/lessons/lesson-3/6590.dat.png
    A doc/lessons/lesson-3/Bumper-Car-01.html
    A doc/lessons/lesson-3/Bumper-Car-01.png
    A doc/lessons/lesson-3/Bumper-Car-02.html
    A doc/lessons/lesson-3/Bumper-Car-02.png
    A doc/lessons/lesson-3/Bumper-Car-03.html
    A doc/lessons/lesson-3/Bumper-Car-03.png
    A doc/lessons/lesson-3/Bumper-Car-04.html
    A doc/lessons/lesson-3/Bumper-Car-04.png
    A doc/lessons/lesson-3/Bumper-Car-05.html
    A doc/lessons/lesson-3/Bumper-Car-05.png
    A doc/lessons/lesson-3/Bumper-Car-06.html
    A doc/lessons/lesson-3/Bumper-Car-06.png
    A doc/lessons/lesson-3/Bumper-Car-07.html
    A doc/lessons/lesson-3/Bumper-Car-07.png
    A doc/lessons/lesson-3/Bumper-Car-08.html
    A doc/lessons/lesson-3/Bumper-Car-08.png
    A doc/lessons/lesson-3/Bumper-Car-09.html
    A doc/lessons/lesson-3/Bumper-Car-09.png
    A doc/lessons/lesson-3/Bumper-Car-10.html
    A doc/lessons/lesson-3/Bumper-Car-10.png
    A doc/lessons/lesson-3/Bumper-Car-11.html
    A doc/lessons/lesson-3/Bumper-Car-11.png
    A doc/lessons/lesson-3/Bumper-Car-12.html
    A doc/lessons/lesson-3/Bumper-Car-12.png
    A doc/lessons/lesson-3/Bumper-Car-13.html
    A doc/lessons/lesson-3/Bumper-Car-13.png
    A doc/lessons/lesson-3/Bumper-Car-14.html
    A doc/lessons/lesson-3/Bumper-Car-14.png
    A doc/lessons/lesson-3/Bumper-Car-15.html
    A doc/lessons/lesson-3/Bumper-Car-15.png
    A doc/lessons/lesson-3/Bumper-Car-16.html
    A doc/lessons/lesson-3/Bumper-Car-16.png
    A doc/lessons/lesson-3/Bumper-Car-index.adoc
    A doc/lessons/lesson-3/Bumper-Car-index.html
    A doc/lessons/lesson-3/Bumper-Car.ldr
    A doc/lessons/lesson-3/Makefile
    A doc/lessons/lesson-3/bumper-car.adoc
    R doc/models/bumper-car/21980.dat.png
    R doc/models/bumper-car/22253c02.dat.png
    R doc/models/bumper-car/2431dm9.dat.png
    R doc/models/bumper-car/2654.dat.png
    R doc/models/bumper-car/3001.dat.png
    R doc/models/bumper-car/32073.dat.png
    R doc/models/bumper-car/3647.dat.png
    R doc/models/bumper-car/3648b.dat.png
    R doc/models/bumper-car/3703.dat.png
    R doc/models/bumper-car/3713.dat.png
    R doc/models/bumper-car/3738.dat.png
    R doc/models/bumper-car/4459.dat.png
    R doc/models/bumper-car/4519.dat.png
    R doc/models/bumper-car/6590.dat.png
    R doc/models/bumper-car/Bumper-Car-01.html
    R doc/models/bumper-car/Bumper-Car-01.png
    R doc/models/bumper-car/Bumper-Car-02.html
    R doc/models/bumper-car/Bumper-Car-02.png
    R doc/models/bumper-car/Bumper-Car-03.html
    R doc/models/bumper-car/Bumper-Car-03.png
    R doc/models/bumper-car/Bumper-Car-04.html
    R doc/models/bumper-car/Bumper-Car-04.png
    R doc/models/bumper-car/Bumper-Car-05.html
    R doc/models/bumper-car/Bumper-Car-05.png
    R doc/models/bumper-car/Bumper-Car-06.html
    R doc/models/bumper-car/Bumper-Car-06.png
    R doc/models/bumper-car/Bumper-Car-07.html
    R doc/models/bumper-car/Bumper-Car-07.png
    R doc/models/bumper-car/Bumper-Car-08.html
    R doc/models/bumper-car/Bumper-Car-08.png
    R doc/models/bumper-car/Bumper-Car-09.html
    R doc/models/bumper-car/Bumper-Car-09.png
    R doc/models/bumper-car/Bumper-Car-10.html
    R doc/models/bumper-car/Bumper-Car-10.png
    R doc/models/bumper-car/Bumper-Car-11.html
    R doc/models/bumper-car/Bumper-Car-11.png
    R doc/models/bumper-car/Bumper-Car-12.html
    R doc/models/bumper-car/Bumper-Car-12.png
    R doc/models/bumper-car/Bumper-Car-13.html
    R doc/models/bumper-car/Bumper-Car-13.png
    R doc/models/bumper-car/Bumper-Car-14.html
    R doc/models/bumper-car/Bumper-Car-14.png
    R doc/models/bumper-car/Bumper-Car-15.html
    R doc/models/bumper-car/Bumper-Car-15.png
    R doc/models/bumper-car/Bumper-Car-16.html
    R doc/models/bumper-car/Bumper-Car-16.png
    R doc/models/bumper-car/Bumper-Car-index.adoc
    R doc/models/bumper-car/Bumper-Car-index.html
    R doc/models/bumper-car/Bumper-Car.ldr
    R doc/models/bumper-car/Makefile
    R doc/models/bumper-car/snek-bumper-car.adoc
    R doc/models/line-bug/21980.dat.png
    R doc/models/line-bug/22253c02.dat.png
    R doc/models/line-bug/2654.dat.png
    R doc/models/line-bug/3001.dat.png
    R doc/models/line-bug/32073.dat.png
    R doc/models/line-bug/3647.dat.png
    R doc/models/line-bug/3648b.dat.png
    R doc/models/line-bug/3713.dat.png
    R doc/models/line-bug/3738.dat.png
    R doc/models/line-bug/3895.dat.png
    R doc/models/line-bug/3956.dat.png
    R doc/models/line-bug/4459.dat.png
    R doc/models/line-bug/4519.dat.png
    R doc/models/line-bug/6590.dat.png
    R doc/models/line-bug/Line-Bug-01.html
    R doc/models/line-bug/Line-Bug-01.png
    R doc/models/line-bug/Line-Bug-02.html
    R doc/models/line-bug/Line-Bug-02.png
    R doc/models/line-bug/Line-Bug-03.html
    R doc/models/line-bug/Line-Bug-03.png
    R doc/models/line-bug/Line-Bug-04.html
    R doc/models/line-bug/Line-Bug-04.png
    R doc/models/line-bug/Line-Bug-05.html
    R doc/models/line-bug/Line-Bug-05.png
    R doc/models/line-bug/Line-Bug-06.html
    R doc/models/line-bug/Line-Bug-06.png
    R doc/models/line-bug/Line-Bug-07.html
    R doc/models/line-bug/Line-Bug-07.png
    R doc/models/line-bug/Line-Bug-08.html
    R doc/models/line-bug/Line-Bug-08.png
    R doc/models/line-bug/Line-Bug-09.html
    R doc/models/line-bug/Line-Bug-09.png
    R doc/models/line-bug/Line-Bug-10.html
    R doc/models/line-bug/Line-Bug-10.png
    R doc/models/line-bug/Line-Bug-11.html
    R doc/models/line-bug/Line-Bug-11.png
    R doc/models/line-bug/Line-Bug-12.html
    R doc/models/line-bug/Line-Bug-12.png
    R doc/models/line-bug/Line-Bug-13.html
    R doc/models/line-bug/Line-Bug-13.png
    R doc/models/line-bug/Line-Bug-14.html
    R doc/models/line-bug/Line-Bug-14.png
    R doc/models/line-bug/Line-Bug-15.html
    R doc/models/line-bug/Line-Bug-15.png
    R doc/models/line-bug/Line-Bug-16.html
    R doc/models/line-bug/Line-Bug-16.png
    R doc/models/line-bug/Line-Bug.ldr
    R doc/models/line-bug/Makefile
    R doc/models/line-bug/draw-bug.5c
    R doc/models/line-bug/left-turn.svg
    R doc/models/line-bug/line-bug-top.png
    R doc/models/line-bug/line-bug.jpg
    R doc/models/line-bug/make-step
    R doc/models/line-bug/make-steps
    R doc/models/line-bug/right-turn.svg
    R doc/models/line-bug/snek-line-bug.adoc
    R doc/snekboard/Makefile
    R doc/snekboard/snekboard-in-enclosure.jpg
    R doc/snekboard/snekboard-label.jpg
    R doc/snekboard/snekboard-sensors.jpg
    R doc/snekboard/snekboard-wired.jpg
    R doc/snekboard/snekboard.adoc
    R doc/snekboard/snekboard.png

  Log Message:
  -----------
  doc: Put lessons in doc/lessons directory

This puts the classroom materials in a single directory.

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: 7702ba83ca7a5aa981f12977c028e3df50631202
      https://github.com/keith-packard/snek/commit/7702ba83ca7a5aa981f12977c028e3df50631202
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-02-22 (Sat, 22 Feb 2020)

  Changed paths:
    M doc/Makefile

  Log Message:
  -----------
  doc: Add lessons subdirectories to Makefile

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: dc3acab7e4ee4b558f9e6827308e152babe24e01
      https://github.com/keith-packard/snek/commit/dc3acab7e4ee4b558f9e6827308e152babe24e01
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-02-22 (Sat, 22 Feb 2020)

  Changed paths:
    M doc/snek.adoc
    M snek-install.defs

  Log Message:
  -----------
  sneklang.org website related changes

Change link in snek reference.
Change directories for snek doc storage on sneklang.org

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: 4fc663beb31899f0cc8d35fb36c7ab34367d9e6b
      https://github.com/keith-packard/snek/commit/4fc663beb31899f0cc8d35fb36c7ab34367d9e6b
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-02-22 (Sat, 22 Feb 2020)

  Changed paths:
    A doc/lessons/lesson-1/.gitignore
    M doc/lessons/lesson-1/Makefile
    A doc/lessons/lesson-1/mu-editor-hello.png
    A doc/lessons/lesson-1/mu-editor-serial.png
    A doc/lessons/lesson-1/mu-editor.png
    M doc/lessons/lesson-1/snekboard.adoc
    A doc/lessons/lesson-1/snekboard.jpg
    A doc/lessons/lesson-1/snekboard.svg

  Log Message:
  -----------
  doc/lessons/lesson-1: Update with mu-editor bits from Mike

Include new snekboard image with snek logo

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: 782ed570dde619bf6662a021a23a2491f53a3f38
      https://github.com/keith-packard/snek/commit/782ed570dde619bf6662a021a23a2491f53a3f38
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-02-22 (Sat, 22 Feb 2020)

  Changed paths:
    A doc/lessons/lesson-2/.gitignore
    M doc/lessons/lesson-2/Makefile
    R doc/lessons/lesson-2/draw-bug.5c
    M doc/lessons/lesson-2/line-bug.adoc
    M doc/lessons/lesson-2/line-bug.jpg
    A doc/lessons/lesson-2/line-bug.svg
    M doc/lessons/lesson-2/make-step
    A doc/lessons/lesson-2/simple-bug.py

  Log Message:
  -----------
  doc/lessons/lesson-2: Update line bug image

Use an adjusted image that includes the pololu IR sensor and has a
pure white background.

Switch the text to reference the IR sensor.

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: f9ff79bd31d1a4e84d31775870d2e8a3e84dc76b
      https://github.com/keith-packard/snek/commit/f9ff79bd31d1a4e84d31775870d2e8a3e84dc76b
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-02-22 (Sat, 22 Feb 2020)

  Changed paths:
    M doc/lessons/lesson-2/Makefile
    M doc/lessons/lesson-2/line-bug.adoc
    A doc/lessons/lesson-2/line-bug.py
    R doc/lessons/lesson-2/simple-bug.py

  Log Message:
  -----------
  doc/lessons/lesson-2: Include line bug source as appendix

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: a0a1421bef14468e25a73137aeec09a509058483
      https://github.com/keith-packard/snek/commit/a0a1421bef14468e25a73137aeec09a509058483
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-02-22 (Sat, 22 Feb 2020)

  Changed paths:
    M doc/lessons/lesson-2/line-bug.adoc
    M doc/lessons/lesson-2/line-bug.py

  Log Message:
  -----------
  doc/lessons/lesson-2: Get python code formatted with coderay

I think that mostly involved installing coderay, but I've also set the
indentation to four spaces and run 'black' over the python file.

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: 7c6c3a5c33fbdac1acffd2026a0e271e22789034
      https://github.com/keith-packard/snek/commit/7c6c3a5c33fbdac1acffd2026a0e271e22789034
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-02-22 (Sat, 22 Feb 2020)

  Changed paths:
    M doc/lessons/lesson-1/snekboard.adoc
    M doc/lessons/lesson-1/snekboard.jpg
    R doc/lessons/lesson-1/snekboard.png
    M doc/lessons/lesson-1/snekboard.svg

  Log Message:
  -----------
  doc/lessons/lesson-1: Replace png image with jpg+snek overlay

The jpg is a lot smaller, plus we've got our snek theme to carry into
this.

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: 75932c2deab6b8f1bc2df1ece456d95ff41a289e
      https://github.com/keith-packard/snek/commit/75932c2deab6b8f1bc2df1ece456d95ff41a289e
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-02-22 (Sat, 22 Feb 2020)

  Changed paths:
    M doc/lessons/lesson-2/line-bug.adoc

  Log Message:
  -----------
  doc/lessons/lesson-2: Add snek to end of lesson 2

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: 3c737092c60b13cf7be3bd5a0cb69d45f8d0d701
      https://github.com/keith-packard/snek/commit/3c737092c60b13cf7be3bd5a0cb69d45f8d0d701
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-02-22 (Sat, 22 Feb 2020)

  Changed paths:
    M doc/lessons/lesson-1/Makefile
    A doc/lessons/lesson-1/lesson-1-snekboard.adoc
    R doc/lessons/lesson-1/snekboard.adoc
    M doc/lessons/lesson-2/Makefile
    A doc/lessons/lesson-2/lesson-2-line-bug.adoc
    R doc/lessons/lesson-2/line-bug.adoc

  Log Message:
  -----------
  doc/lessons: Rename individual lessons to start with 'lesson-x'

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: b23543db49b3f830c5b2856589bc64c41fbbd1f7
      https://github.com/keith-packard/snek/commit/b23543db49b3f830c5b2856589bc64c41fbbd1f7
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-02-22 (Sat, 22 Feb 2020)

  Changed paths:
    R doc/lessons/lesson-2/make-step
    R doc/lessons/lesson-2/make-steps
    A doc/lessons/lesson-3/.gitignore
    M doc/lessons/lesson-3/Makefile
    A doc/lessons/lesson-3/bumper-car-annotated.svg
    R doc/lessons/lesson-3/bumper-car.adoc
    A doc/lessons/lesson-3/bumper-car.jpg
    A doc/lessons/lesson-3/bumper-car.svg
    A doc/lessons/lesson-3/lesson-3-bumper-car.adoc
    A doc/util/make-step
    A doc/util/make-steps

  Log Message:
  -----------
  doc/lesson: Add lesson-3, Bumper Car

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: 3ef971dc803df050edbe17100e0d838cb5356fa3
      https://github.com/keith-packard/snek/commit/3ef971dc803df050edbe17100e0d838cb5356fa3
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-02-22 (Sat, 22 Feb 2020)

  Changed paths:
    M doc/lessons/lesson-2/.gitignore

  Log Message:
  -----------
  doc/lessons/lesson-2: correct generated files in .gitignore

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: e47312ee448a01187475750d4b36dd89164ab3da
      https://github.com/keith-packard/snek/commit/e47312ee448a01187475750d4b36dd89164ab3da
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-02-22 (Sat, 22 Feb 2020)

  Changed paths:
    M doc/lessons/lesson-1/.gitignore

  Log Message:
  -----------
  doc/lessons/lesson-1: Correct generated filenames in .gitignore

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: ebf6a9842d7559097d56fdba0667422be959bd1b
      https://github.com/keith-packard/snek/commit/ebf6a9842d7559097d56fdba0667422be959bd1b
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-02-22 (Sat, 22 Feb 2020)

  Changed paths:
    M doc/lessons/lesson-2/Makefile

  Log Message:
  -----------
  doc/lessons/lesson-2: Adjust paths to leocad tools

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: 839278a3dd8830bbaad8abf78bcaee52e909500b
      https://github.com/keith-packard/snek/commit/839278a3dd8830bbaad8abf78bcaee52e909500b
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-02-22 (Sat, 22 Feb 2020)

  Changed paths:
    M doc/lessons/lesson-1/lesson-1-snekboard.adoc

  Log Message:
  -----------
  doc/lessons/lesson-1: Use ≤ instead of <=

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: 24c01a7b8e77389bca810ff2c88341b13bfe1413
      https://github.com/keith-packard/snek/commit/24c01a7b8e77389bca810ff2c88341b13bfe1413
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-02-22 (Sat, 22 Feb 2020)

  Changed paths:
    M snek.defs

  Log Message:
  -----------
  Add some paths for doc files in snek.defs

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: 3f885c0f15c2252c8902eba3dc5238df2559f0e5
      https://github.com/keith-packard/snek/commit/3f885c0f15c2252c8902eba3dc5238df2559f0e5
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-02-22 (Sat, 22 Feb 2020)

  Changed paths:
    M doc/Makefile

  Log Message:
  -----------
  doc: Skip building in lessons/util

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: 50b69d0f97835513989902845968266b06ce72c4
      https://github.com/keith-packard/snek/commit/50b69d0f97835513989902845968266b06ce72c4
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-02-22 (Sat, 22 Feb 2020)

  Changed paths:
    M Makefile
    M README.md
    M ao/make-product.py
    M chips/qemu/snek-qemu.defs
    M chips/samd21/uf2conv.py
    M doc/Makefile
    A doc/fonts/Lato-Medium.ttf
    A doc/lessons/lesson-1/.gitignore
    A doc/lessons/lesson-1/Makefile
    A doc/lessons/lesson-1/lesson-1-snekboard.adoc
    A doc/lessons/lesson-1/mu-editor-hello.png
    A doc/lessons/lesson-1/mu-editor-serial.png
    A doc/lessons/lesson-1/mu-editor.png
    A doc/lessons/lesson-1/snekboard-in-enclosure.jpg
    A doc/lessons/lesson-1/snekboard-label.jpg
    A doc/lessons/lesson-1/snekboard-sensors.jpg
    A doc/lessons/lesson-1/snekboard-wired.jpg
    A doc/lessons/lesson-1/snekboard.jpg
    A doc/lessons/lesson-1/snekboard.svg
    A doc/lessons/lesson-2/.gitignore
    A doc/lessons/lesson-2/21980.dat.png
    A doc/lessons/lesson-2/22253c02.dat.png
    A doc/lessons/lesson-2/2654.dat.png
    A doc/lessons/lesson-2/3001.dat.png
    A doc/lessons/lesson-2/32073.dat.png
    A doc/lessons/lesson-2/3647.dat.png
    A doc/lessons/lesson-2/3648b.dat.png
    A doc/lessons/lesson-2/3713.dat.png
    A doc/lessons/lesson-2/3738.dat.png
    A doc/lessons/lesson-2/3895.dat.png
    A doc/lessons/lesson-2/3956.dat.png
    A doc/lessons/lesson-2/4459.dat.png
    A doc/lessons/lesson-2/4519.dat.png
    A doc/lessons/lesson-2/6590.dat.png
    A doc/lessons/lesson-2/Line-Bug-01.html
    A doc/lessons/lesson-2/Line-Bug-01.png
    A doc/lessons/lesson-2/Line-Bug-02.html
    A doc/lessons/lesson-2/Line-Bug-02.png
    A doc/lessons/lesson-2/Line-Bug-03.html
    A doc/lessons/lesson-2/Line-Bug-03.png
    A doc/lessons/lesson-2/Line-Bug-04.html
    A doc/lessons/lesson-2/Line-Bug-04.png
    A doc/lessons/lesson-2/Line-Bug-05.html
    A doc/lessons/lesson-2/Line-Bug-05.png
    A doc/lessons/lesson-2/Line-Bug-06.html
    A doc/lessons/lesson-2/Line-Bug-06.png
    A doc/lessons/lesson-2/Line-Bug-07.html
    A doc/lessons/lesson-2/Line-Bug-07.png
    A doc/lessons/lesson-2/Line-Bug-08.html
    A doc/lessons/lesson-2/Line-Bug-08.png
    A doc/lessons/lesson-2/Line-Bug-09.html
    A doc/lessons/lesson-2/Line-Bug-09.png
    A doc/lessons/lesson-2/Line-Bug-10.html
    A doc/lessons/lesson-2/Line-Bug-10.png
    A doc/lessons/lesson-2/Line-Bug-11.html
    A doc/lessons/lesson-2/Line-Bug-11.png
    A doc/lessons/lesson-2/Line-Bug-12.html
    A doc/lessons/lesson-2/Line-Bug-12.png
    A doc/lessons/lesson-2/Line-Bug-13.html
    A doc/lessons/lesson-2/Line-Bug-13.png
    A doc/lessons/lesson-2/Line-Bug-14.html
    A doc/lessons/lesson-2/Line-Bug-14.png
    A doc/lessons/lesson-2/Line-Bug-15.html
    A doc/lessons/lesson-2/Line-Bug-15.png
    A doc/lessons/lesson-2/Line-Bug-16.html
    A doc/lessons/lesson-2/Line-Bug-16.png
    A doc/lessons/lesson-2/Line-Bug.ldr
    A doc/lessons/lesson-2/Makefile
    A doc/lessons/lesson-2/left-turn.svg
    A doc/lessons/lesson-2/lesson-2-line-bug.adoc
    A doc/lessons/lesson-2/line-bug-top.png
    A doc/lessons/lesson-2/line-bug.jpg
    A doc/lessons/lesson-2/line-bug.py
    A doc/lessons/lesson-2/line-bug.svg
    A doc/lessons/lesson-2/right-turn.svg
    A doc/lessons/lesson-3/.gitignore
    A doc/lessons/lesson-3/21980.dat.png
    A doc/lessons/lesson-3/22253c02.dat.png
    A doc/lessons/lesson-3/2431dm9.dat.png
    A doc/lessons/lesson-3/2654.dat.png
    A doc/lessons/lesson-3/3001.dat.png
    A doc/lessons/lesson-3/32073.dat.png
    A doc/lessons/lesson-3/3647.dat.png
    A doc/lessons/lesson-3/3648b.dat.png
    A doc/lessons/lesson-3/3703.dat.png
    A doc/lessons/lesson-3/3713.dat.png
    A doc/lessons/lesson-3/3738.dat.png
    A doc/lessons/lesson-3/4459.dat.png
    A doc/lessons/lesson-3/4519.dat.png
    A doc/lessons/lesson-3/6590.dat.png
    A doc/lessons/lesson-3/Bumper-Car-01.html
    A doc/lessons/lesson-3/Bumper-Car-01.png
    A doc/lessons/lesson-3/Bumper-Car-02.html
    A doc/lessons/lesson-3/Bumper-Car-02.png
    A doc/lessons/lesson-3/Bumper-Car-03.html
    A doc/lessons/lesson-3/Bumper-Car-03.png
    A doc/lessons/lesson-3/Bumper-Car-04.html
    A doc/lessons/lesson-3/Bumper-Car-04.png
    A doc/lessons/lesson-3/Bumper-Car-05.html
    A doc/lessons/lesson-3/Bumper-Car-05.png
    A doc/lessons/lesson-3/Bumper-Car-06.html
    A doc/lessons/lesson-3/Bumper-Car-06.png
    A doc/lessons/lesson-3/Bumper-Car-07.html
    A doc/lessons/lesson-3/Bumper-Car-07.png
    A doc/lessons/lesson-3/Bumper-Car-08.html
    A doc/lessons/lesson-3/Bumper-Car-08.png
    A doc/lessons/lesson-3/Bumper-Car-09.html
    A doc/lessons/lesson-3/Bumper-Car-09.png
    A doc/lessons/lesson-3/Bumper-Car-10.html
    A doc/lessons/lesson-3/Bumper-Car-10.png
    A doc/lessons/lesson-3/Bumper-Car-11.html
    A doc/lessons/lesson-3/Bumper-Car-11.png
    A doc/lessons/lesson-3/Bumper-Car-12.html
    A doc/lessons/lesson-3/Bumper-Car-12.png
    A doc/lessons/lesson-3/Bumper-Car-13.html
    A doc/lessons/lesson-3/Bumper-Car-13.png
    A doc/lessons/lesson-3/Bumper-Car-14.html
    A doc/lessons/lesson-3/Bumper-Car-14.png
    A doc/lessons/lesson-3/Bumper-Car-15.html
    A doc/lessons/lesson-3/Bumper-Car-15.png
    A doc/lessons/lesson-3/Bumper-Car-16.html
    A doc/lessons/lesson-3/Bumper-Car-16.png
    A doc/lessons/lesson-3/Bumper-Car-index.adoc
    A doc/lessons/lesson-3/Bumper-Car-index.html
    A doc/lessons/lesson-3/Bumper-Car.ldr
    A doc/lessons/lesson-3/Makefile
    A doc/lessons/lesson-3/bumper-car-annotated.svg
    A doc/lessons/lesson-3/bumper-car.jpg
    A doc/lessons/lesson-3/bumper-car.svg
    A doc/lessons/lesson-3/lesson-3-bumper-car.adoc
    A doc/models/washing-machine/21980.dat.png
    A doc/models/washing-machine/3003.dat.png
    A doc/models/washing-machine/3022.dat.png
    A doc/models/washing-machine/3023.dat.png
    A doc/models/washing-machine/3034.dat.png
    A doc/models/washing-machine/3039.dat.png
    A doc/models/washing-machine/3040b.dat.png
    A doc/models/washing-machine/3460.dat.png
    A doc/models/washing-machine/3482.dat.png
    A doc/models/washing-machine/3634.dat.png
    A doc/models/washing-machine/3660.dat.png
    A doc/models/washing-machine/3666.dat.png
    A doc/models/washing-machine/3700.dat.png
    A doc/models/washing-machine/3701.dat.png
    A doc/models/washing-machine/3702.dat.png
    A doc/models/washing-machine/3738.dat.png
    A doc/models/washing-machine/3830.dat.png
    A doc/models/washing-machine/3831.dat.png
    A doc/models/washing-machine/3894.dat.png
    A doc/models/washing-machine/3895.dat.png
    A doc/models/washing-machine/41539.dat.png
    A doc/models/washing-machine/4459.dat.png
    A doc/models/washing-machine/4519.dat.png
    A doc/models/washing-machine/5306.dat.png
    A doc/models/washing-machine/62498c02.dat.png
    A doc/models/washing-machine/75973.dat.png
    A doc/models/washing-machine/879.dat.png
    A doc/models/washing-machine/Makefile
    A doc/models/washing-machine/snek-washing-machine.adoc
    A doc/models/washing-machine/washing-machine-01.html
    A doc/models/washing-machine/washing-machine-01.png
    A doc/models/washing-machine/washing-machine-02.html
    A doc/models/washing-machine/washing-machine-02.png
    A doc/models/washing-machine/washing-machine-03.html
    A doc/models/washing-machine/washing-machine-03.png
    A doc/models/washing-machine/washing-machine-04.html
    A doc/models/washing-machine/washing-machine-04.png
    A doc/models/washing-machine/washing-machine-05.html
    A doc/models/washing-machine/washing-machine-05.png
    A doc/models/washing-machine/washing-machine-06.html
    A doc/models/washing-machine/washing-machine-06.png
    A doc/models/washing-machine/washing-machine-07.html
    A doc/models/washing-machine/washing-machine-07.png
    A doc/models/washing-machine/washing-machine-08.html
    A doc/models/washing-machine/washing-machine-08.png
    A doc/models/washing-machine/washing-machine-09.html
    A doc/models/washing-machine/washing-machine-09.png
    A doc/models/washing-machine/washing-machine-10.html
    A doc/models/washing-machine/washing-machine-10.png
    A doc/models/washing-machine/washing-machine-11.html
    A doc/models/washing-machine/washing-machine-11.png
    A doc/models/washing-machine/washing-machine-12.html
    A doc/models/washing-machine/washing-machine-12.png
    A doc/models/washing-machine/washing-machine-13.html
    A doc/models/washing-machine/washing-machine-13.png
    A doc/models/washing-machine/washing-machine-14.html
    A doc/models/washing-machine/washing-machine-14.png
    A doc/models/washing-machine/washing-machine-15.html
    A doc/models/washing-machine/washing-machine-15.png
    A doc/models/washing-machine/washing-machine-16.html
    A doc/models/washing-machine/washing-machine-16.png
    A doc/models/washing-machine/washing-machine-17.html
    A doc/models/washing-machine/washing-machine-17.png
    A doc/models/washing-machine/washing-machine-18.html
    A doc/models/washing-machine/washing-machine-18.png
    A doc/models/washing-machine/washing-machine-19.html
    A doc/models/washing-machine/washing-machine-19.png
    A doc/models/washing-machine/washing-machine.jpg
    A doc/models/washing-machine/washing-machine.ldr
    M doc/snek-book-theme.yml
    M doc/snek-theme.yml
    M doc/snek.adoc
    A doc/util/make-step
    A doc/util/make-steps
    M examples/Makefile
    M examples/blink.py
    M examples/hanoi.py
    M examples/morse.py
    M examples/neopixel.py
    M examples/neopixels.py
    M examples/snek-bsd.py
    M examples/snek-car.py
    M examples/snek.py
    M examples/track-light.py
    M hosts/windows/snek-windows.c
    A hosts/zip/.gitignore
    A hosts/zip/Makefile
    M ports/duemilanove/Makefile
    M ports/esp32/CMakeLists.txt
    M ports/esp32/Makefile
    M ports/esp32/esp32-idf
    M ports/esp32/loadable_elf_example_test.py
    A ports/ev3/.clang-format
    A ports/ev3/.dir-locals.el
    A ports/ev3/.gitignore
    A ports/ev3/Makefile
    A ports/ev3/sensors.c
    A ports/ev3/sensors.h
    A ports/ev3/snek-ev3.builtin
    A ports/ev3/snek-ev3.h
    A ports/ev3/snek-main.c
    A ports/ev3/utils.c
    A ports/ev3/utils.h
    A ports/hifive1revb/.gitignore
    A ports/hifive1revb/Makefile
    A ports/hifive1revb/metal.default.lds
    A ports/hifive1revb/metal/machine.h
    A ports/hifive1revb/metal/machine/inline.h
    A ports/hifive1revb/metal/machine/platform.h
    A ports/hifive1revb/snek-hifive1revb.builtin
    A ports/hifive1revb/snek-metal-builtin.c
    A ports/hifive1revb/snek-metal-gpio.c
    A ports/hifive1revb/snek-metal-uart.c
    A ports/hifive1revb/snek-metal.c
    A ports/hifive1revb/snek-metal.h
    M ports/itsybitsy3v/Makefile
    M ports/itsybitsy5v/Makefile
    M ports/mega/Makefile
    M ports/posix/snek-main.c
    M ports/posix/snek-posix.builtin
    M ports/qemu-arm/snek-arm.in
    M ports/qemu-riscv/snek-riscv.in
    A ports/uduino/.gitignore
    A ports/uduino/Makefile
    A ports/uduino/ao-pins.h
    A ports/uduino/snek-uduino-install.1
    A ports/uduino/snek-uduino-install.in
    A ports/uduino/snek-uduino.builtin
    R ports/µduino/.gitignore
    R ports/µduino/Makefile
    R ports/µduino/ao-pins.h
    R ports/µduino/snek-uduino-install.1
    R ports/µduino/snek-uduino-install.in
    R ports/µduino/snek-µduino.builtin
    M snek-base.builtin
    M snek-builtin.c
    M snek-builtin.py
    M snek-exec.c
    M snek-gram.ll
    M snek-install.defs
    M snek-lex.c
    M snek-list.c
    M snek-memory.c
    M snek-print.c
    M snek-string.c
    M snek.defs
    M snek.h
    M snekde/Makefile
    M snekde/snekde.py
    M test/Makefile
    R test/actual-named-first.py
    R test/andor.py
    R test/arg-dup1.py
    R test/arg-dup2.py
    R test/arg-unknown.py
    R test/args-missing.py
    R test/args.py
    R test/assert-fail.py
    R test/assert-success.py
    R test/dict.py
    R test/equal_is.py
    A test/fail-actual-named-first.py
    A test/fail-arg-dup1.py
    A test/fail-arg-dup2.py
    A test/fail-arg-unknown.py
    A test/fail-args-missing.py
    A test/fail-assert-fail.py
    A test/fail-formal-named-first.py
    A test/fail-interpolate-badformat.py
    A test/fail-interpolate-extra.py
    A test/fail-interpolate-missing.py
    A test/fail-range-named.py
    A test/fail-scoping-no-decl.py
    A test/fail-syntax-lex-bang.py
    A test/fail-syntax-list-named.py
    A test/fail-syntax-tuple-named.py
    R test/float.py
    R test/for-array.py
    R test/for-break.py
    R test/for-nested.py
    R test/for-range.py
    R test/for-string.py
    R test/formal-named-first.py
    R test/global.py
    R test/if.py
    R test/int.py
    R test/interpolate-list.py
    R test/list-named.py
    R test/list.py
    R test/math.py
    R test/none.py
    R test/op.py
    A test/pass-andor.py
    A test/pass-args.py
    A test/pass-assert-success.py
    A test/pass-dict.py
    A test/pass-equal_is.py
    A test/pass-float.py
    A test/pass-for-array.py
    A test/pass-for-break.py
    A test/pass-for-nested.py
    A test/pass-for-range.py
    A test/pass-for-string.py
    A test/pass-get.py
    A test/pass-global.py
    A test/pass-if.py
    A test/pass-int.py
    A test/pass-interpolate-list.py
    A test/pass-interpolate-str.py
    A test/pass-list.py
    A test/pass-math.py
    A test/pass-none.py
    A test/pass-op.py
    A test/pass-range.py
    A test/pass-scoping-global.py
    A test/pass-scoping-local.py
    A test/pass-slice.py
    A test/pass-trailing-comma.py
    A test/pass-while-break.py
    A test/pass-while-else.py
    A test/pass-while.py
    R test/range-named.py
    R test/range.py
    R test/scoping-global.py
    R test/scoping-local.py
    R test/scoping-no-decl.py
    R test/slice.py
    R test/tuple-named.py
    R test/while-break.py
    R test/while-else.py
    R test/while.py

  Log Message:
  -----------
  Merge branch 'master' into debian


  Commit: ea75aa322bb27de019f30cedfac82e4a010ed1fe
      https://github.com/keith-packard/snek/commit/ea75aa322bb27de019f30cedfac82e4a010ed1fe
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-02-22 (Sat, 22 Feb 2020)

  Changed paths:
    M debian/control

  Log Message:
  -----------
  debian: Require gcc-arm-linux-gnueaabi for ev3 port

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: 5c811893cfb58bde2e004f695dd161e1a5ad2b5a
      https://github.com/keith-packard/snek/commit/5c811893cfb58bde2e004f695dd161e1a5ad2b5a
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-02-22 (Sat, 22 Feb 2020)

  Changed paths:
    M hosts/linux/Makefile
    M hosts/macosx/Makefile
    M hosts/windows/Makefile
    M hosts/zip/Makefile
    M snek-install.defs

  Log Message:
  -----------
  Ship lessons with all hosts

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: 8035d8cc0f9c090878c45f19acb7a439ebf52af8
      https://github.com/keith-packard/snek/commit/8035d8cc0f9c090878c45f19acb7a439ebf52af8
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-02-22 (Sat, 22 Feb 2020)

  Changed paths:
    A doc/lessons/lesson-5/Makefile
    A doc/lessons/lesson-5/pid-bug-eight.py
    A doc/lessons/lesson-5/pid-bug-one.py
    A doc/lessons/lesson-5/pid-bug.adoc

  Log Message:
  -----------
  doc/lessons: Add stub for PID based line-bug lesson

There's no lesson material, just the source code.

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: 12e1336d361f10d3377087fb925ae4380fe94e24
      https://github.com/keith-packard/snek/commit/12e1336d361f10d3377087fb925ae4380fe94e24
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-02-22 (Sat, 22 Feb 2020)

  Changed paths:
    A doc/lessons/lesson-5/Makefile
    A doc/lessons/lesson-5/pid-bug-eight.py
    A doc/lessons/lesson-5/pid-bug-one.py
    A doc/lessons/lesson-5/pid-bug.adoc
    M hosts/linux/Makefile
    M hosts/macosx/Makefile
    M hosts/windows/Makefile
    M hosts/zip/Makefile
    M snek-install.defs

  Log Message:
  -----------
  Merge branch 'master' into debian


  Commit: b268b67591edb9f53ddd8ca3c5f2d4688cd110ad
      https://github.com/keith-packard/snek/commit/b268b67591edb9f53ddd8ca3c5f2d4688cd110ad
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-02-22 (Sat, 22 Feb 2020)

  Changed paths:
    M debian/control

  Log Message:
  -----------
  Add libc6-dev-armel-cross


  Commit: f6a217c6b3c1ad2eaecae2975a3afe4c4cc7412f
      https://github.com/keith-packard/snek/commit/f6a217c6b3c1ad2eaecae2975a3afe4c4cc7412f
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-02-22 (Sat, 22 Feb 2020)

  Changed paths:
    M debian/control

  Log Message:
  -----------
  debian: Add Build-Depends: black


  Commit: 88a6be1ea4212de4b5e630b9941defab7751a0d4
      https://github.com/keith-packard/snek/commit/88a6be1ea4212de4b5e630b9941defab7751a0d4
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-02-22 (Sat, 22 Feb 2020)

  Changed paths:
    M debian/rules
    M debian/snek.lintian-overrides

  Log Message:
  -----------
  debian: Deal with EV3 binary during packaging

Skip it in dh_strip and dh_dwz phases.
Ignore lintian errors about it.

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: f940f81db2dec103a67ef526a55fb376911ee8b1
      https://github.com/keith-packard/snek/commit/f940f81db2dec103a67ef526a55fb376911ee8b1
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-02-22 (Sat, 22 Feb 2020)

  Changed paths:
    A doc/lessons/lesson-4/.gitignore
    A doc/lessons/lesson-4/21980.dat.png
    A doc/lessons/lesson-4/3003.dat.png
    A doc/lessons/lesson-4/3022.dat.png
    A doc/lessons/lesson-4/3023.dat.png
    A doc/lessons/lesson-4/3034.dat.png
    A doc/lessons/lesson-4/3039.dat.png
    A doc/lessons/lesson-4/3040b.dat.png
    A doc/lessons/lesson-4/3460.dat.png
    A doc/lessons/lesson-4/3482.dat.png
    A doc/lessons/lesson-4/3634.dat.png
    A doc/lessons/lesson-4/3660.dat.png
    A doc/lessons/lesson-4/3666.dat.png
    A doc/lessons/lesson-4/3700.dat.png
    A doc/lessons/lesson-4/3701.dat.png
    A doc/lessons/lesson-4/3702.dat.png
    A doc/lessons/lesson-4/3738.dat.png
    A doc/lessons/lesson-4/3830.dat.png
    A doc/lessons/lesson-4/3831.dat.png
    A doc/lessons/lesson-4/3894.dat.png
    A doc/lessons/lesson-4/3895.dat.png
    A doc/lessons/lesson-4/41539.dat.png
    A doc/lessons/lesson-4/4459.dat.png
    A doc/lessons/lesson-4/4519.dat.png
    A doc/lessons/lesson-4/5306.dat.png
    A doc/lessons/lesson-4/62498c02.dat.png
    A doc/lessons/lesson-4/75973.dat.png
    A doc/lessons/lesson-4/879.dat.png
    A doc/lessons/lesson-4/Makefile
    A doc/lessons/lesson-4/lesson-4-washing-machine.adoc
    A doc/lessons/lesson-4/washing-machine-01.html
    A doc/lessons/lesson-4/washing-machine-01.png
    A doc/lessons/lesson-4/washing-machine-02.html
    A doc/lessons/lesson-4/washing-machine-02.png
    A doc/lessons/lesson-4/washing-machine-03.html
    A doc/lessons/lesson-4/washing-machine-03.png
    A doc/lessons/lesson-4/washing-machine-04.html
    A doc/lessons/lesson-4/washing-machine-04.png
    A doc/lessons/lesson-4/washing-machine-05.html
    A doc/lessons/lesson-4/washing-machine-05.png
    A doc/lessons/lesson-4/washing-machine-06.html
    A doc/lessons/lesson-4/washing-machine-06.png
    A doc/lessons/lesson-4/washing-machine-07.html
    A doc/lessons/lesson-4/washing-machine-07.png
    A doc/lessons/lesson-4/washing-machine-08.html
    A doc/lessons/lesson-4/washing-machine-08.png
    A doc/lessons/lesson-4/washing-machine-09.html
    A doc/lessons/lesson-4/washing-machine-09.png
    A doc/lessons/lesson-4/washing-machine-10.html
    A doc/lessons/lesson-4/washing-machine-10.png
    A doc/lessons/lesson-4/washing-machine-11.html
    A doc/lessons/lesson-4/washing-machine-11.png
    A doc/lessons/lesson-4/washing-machine-12.html
    A doc/lessons/lesson-4/washing-machine-12.png
    A doc/lessons/lesson-4/washing-machine-13.html
    A doc/lessons/lesson-4/washing-machine-13.png
    A doc/lessons/lesson-4/washing-machine-14.html
    A doc/lessons/lesson-4/washing-machine-14.png
    A doc/lessons/lesson-4/washing-machine-15.html
    A doc/lessons/lesson-4/washing-machine-15.png
    A doc/lessons/lesson-4/washing-machine-16.html
    A doc/lessons/lesson-4/washing-machine-16.png
    A doc/lessons/lesson-4/washing-machine-17.html
    A doc/lessons/lesson-4/washing-machine-17.png
    A doc/lessons/lesson-4/washing-machine-18.html
    A doc/lessons/lesson-4/washing-machine-18.png
    A doc/lessons/lesson-4/washing-machine-19.html
    A doc/lessons/lesson-4/washing-machine-19.png
    A doc/lessons/lesson-4/washing-machine.jpg
    A doc/lessons/lesson-4/washing-machine.ldr
    R doc/models/washing-machine/21980.dat.png
    R doc/models/washing-machine/3003.dat.png
    R doc/models/washing-machine/3022.dat.png
    R doc/models/washing-machine/3023.dat.png
    R doc/models/washing-machine/3034.dat.png
    R doc/models/washing-machine/3039.dat.png
    R doc/models/washing-machine/3040b.dat.png
    R doc/models/washing-machine/3460.dat.png
    R doc/models/washing-machine/3482.dat.png
    R doc/models/washing-machine/3634.dat.png
    R doc/models/washing-machine/3660.dat.png
    R doc/models/washing-machine/3666.dat.png
    R doc/models/washing-machine/3700.dat.png
    R doc/models/washing-machine/3701.dat.png
    R doc/models/washing-machine/3702.dat.png
    R doc/models/washing-machine/3738.dat.png
    R doc/models/washing-machine/3830.dat.png
    R doc/models/washing-machine/3831.dat.png
    R doc/models/washing-machine/3894.dat.png
    R doc/models/washing-machine/3895.dat.png
    R doc/models/washing-machine/41539.dat.png
    R doc/models/washing-machine/4459.dat.png
    R doc/models/washing-machine/4519.dat.png
    R doc/models/washing-machine/5306.dat.png
    R doc/models/washing-machine/62498c02.dat.png
    R doc/models/washing-machine/75973.dat.png
    R doc/models/washing-machine/879.dat.png
    R doc/models/washing-machine/Makefile
    R doc/models/washing-machine/snek-washing-machine.adoc
    R doc/models/washing-machine/washing-machine-01.html
    R doc/models/washing-machine/washing-machine-01.png
    R doc/models/washing-machine/washing-machine-02.html
    R doc/models/washing-machine/washing-machine-02.png
    R doc/models/washing-machine/washing-machine-03.html
    R doc/models/washing-machine/washing-machine-03.png
    R doc/models/washing-machine/washing-machine-04.html
    R doc/models/washing-machine/washing-machine-04.png
    R doc/models/washing-machine/washing-machine-05.html
    R doc/models/washing-machine/washing-machine-05.png
    R doc/models/washing-machine/washing-machine-06.html
    R doc/models/washing-machine/washing-machine-06.png
    R doc/models/washing-machine/washing-machine-07.html
    R doc/models/washing-machine/washing-machine-07.png
    R doc/models/washing-machine/washing-machine-08.html
    R doc/models/washing-machine/washing-machine-08.png
    R doc/models/washing-machine/washing-machine-09.html
    R doc/models/washing-machine/washing-machine-09.png
    R doc/models/washing-machine/washing-machine-10.html
    R doc/models/washing-machine/washing-machine-10.png
    R doc/models/washing-machine/washing-machine-11.html
    R doc/models/washing-machine/washing-machine-11.png
    R doc/models/washing-machine/washing-machine-12.html
    R doc/models/washing-machine/washing-machine-12.png
    R doc/models/washing-machine/washing-machine-13.html
    R doc/models/washing-machine/washing-machine-13.png
    R doc/models/washing-machine/washing-machine-14.html
    R doc/models/washing-machine/washing-machine-14.png
    R doc/models/washing-machine/washing-machine-15.html
    R doc/models/washing-machine/washing-machine-15.png
    R doc/models/washing-machine/washing-machine-16.html
    R doc/models/washing-machine/washing-machine-16.png
    R doc/models/washing-machine/washing-machine-17.html
    R doc/models/washing-machine/washing-machine-17.png
    R doc/models/washing-machine/washing-machine-18.html
    R doc/models/washing-machine/washing-machine-18.png
    R doc/models/washing-machine/washing-machine-19.html
    R doc/models/washing-machine/washing-machine-19.png
    R doc/models/washing-machine/washing-machine.jpg
    R doc/models/washing-machine/washing-machine.ldr

  Log Message:
  -----------
  doc/lessons/lesson-4: Move washing machine lesson into place

Was stuck in doc/models.

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: 2845e34701f6db7b1ef9a1922bb283c5725552b5
      https://github.com/keith-packard/snek/commit/2845e34701f6db7b1ef9a1922bb283c5725552b5
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-02-22 (Sat, 22 Feb 2020)

  Changed paths:
    M doc/lessons/lesson-3/Makefile

  Log Message:
  -----------
  doc/lessons/lesson-3: remove spurious lines from Makefile

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: fef9f6eb90d54a198dc887e0e82f88179b0f6783
      https://github.com/keith-packard/snek/commit/fef9f6eb90d54a198dc887e0e82f88179b0f6783
  Author: Mikhail Gusarov <dottedmag at dottedmag.net>
  Date:   2020-02-22 (Sat, 22 Feb 2020)

  Changed paths:
    M ports/ev3/utils.c
    M ports/ev3/utils.h

  Log Message:
  -----------
  Unexport close_noerrno, not used outside of utils.c

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: 7e126ffec4850888969a97cc4fb82d23f4ce4f84
      https://github.com/keith-packard/snek/commit/7e126ffec4850888969a97cc4fb82d23f4ce4f84
  Author: Mikhail Gusarov <dottedmag at dottedmag.net>
  Date:   2020-02-22 (Sat, 22 Feb 2020)

  Changed paths:
    M ports/ev3/snek-ev3.h

  Log Message:
  -----------
  Update wrong explanation of new libm symbols in libc 2.27

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: 6b393a9f512615bc6c49416872eda1bb83fb0c3c
      https://github.com/keith-packard/snek/commit/6b393a9f512615bc6c49416872eda1bb83fb0c3c
  Author: Mikhail Gusarov <dottedmag at dottedmag.net>
  Date:   2020-02-22 (Sat, 22 Feb 2020)

  Changed paths:
    M ports/ev3/sensors.c
    M ports/ev3/sensors.h
    M ports/ev3/snek-main.c

  Log Message:
  -----------
  Add a dispatch function for read()

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: a86698020565c9dc2c369eb4e2dbdf260bdd97e8
      https://github.com/keith-packard/snek/commit/a86698020565c9dc2c369eb4e2dbdf260bdd97e8
  Author: Mikhail Gusarov <dottedmag at dottedmag.net>
  Date:   2020-02-22 (Sat, 22 Feb 2020)

  Changed paths:
    M ports/ev3/Makefile
    A ports/ev3/motors.c
    A ports/ev3/motors.h
    M ports/ev3/snek-ev3.builtin
    M ports/ev3/snek-main.c

  Log Message:
  -----------
  Add support for EV3 tacho motors

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: ca6aca3c3d24cdab7b8b717c34a0fc8459d426f7
      https://github.com/keith-packard/snek/commit/ca6aca3c3d24cdab7b8b717c34a0fc8459d426f7
  Author: Mikhail Gusarov <dottedmag at dottedmag.net>
  Date:   2020-02-22 (Sat, 22 Feb 2020)

  Changed paths:
    M doc/snek.adoc
    M ports/ev3/snek-ev3.builtin

  Log Message:
  -----------
  Add documentation for EV3 Servo motors

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: 66fda47f93577f2e8c555043d6636ad8681be53c
      https://github.com/keith-packard/snek/commit/66fda47f93577f2e8c555043d6636ad8681be53c
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-02-22 (Sat, 22 Feb 2020)

  Changed paths:
    M doc/lessons/lesson-4/Makefile
    M doc/lessons/lesson-4/lesson-4-washing-machine.adoc
    M doc/lessons/lesson-4/washing-machine.jpg
    A doc/lessons/lesson-4/washing-machine.svg

  Log Message:
  -----------
  doc/lessons/lesson-4: Clean up washing machine image. Rework lesson

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: 74aaa72a1f019867209e799b5db642e890287de8
      https://github.com/keith-packard/snek/commit/74aaa72a1f019867209e799b5db642e890287de8
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-02-22 (Sat, 22 Feb 2020)

  Changed paths:
    M doc/lessons/lesson-3/lesson-3-bumper-car.adoc

  Log Message:
  -----------
  doc/lessons/lesson-3: Add snek at the end of the lesson

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: 7b0bc5c06b9bf16411dd89ee5b6e1e353bd74745
      https://github.com/keith-packard/snek/commit/7b0bc5c06b9bf16411dd89ee5b6e1e353bd74745
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-02-22 (Sat, 22 Feb 2020)

  Changed paths:
    M doc/lessons/lesson-3/Makefile
    M doc/lessons/lesson-3/lesson-3-bumper-car.adoc
    M doc/lessons/lesson-4/Makefile

  Log Message:
  -----------
  doc/lessons: Upload missing images

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: 35288114b151c526b5aab42b83ebf22ea5f58f84
      https://github.com/keith-packard/snek/commit/35288114b151c526b5aab42b83ebf22ea5f58f84
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-02-22 (Sat, 22 Feb 2020)

  Changed paths:
    M README.md
    M doc/lessons/lesson-1/lesson-1-snekboard.adoc
    M doc/lessons/lesson-2/lesson-2-line-bug.adoc
    M doc/lessons/lesson-3/lesson-3-bumper-car.adoc
    M doc/lessons/lesson-4/lesson-4-washing-machine.adoc

  Log Message:
  -----------
  Update links to use sneklang.org instead of keithp.com/snek

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: 5dbfa54f02e8a52991f512cea9b240c1306bde7f
      https://github.com/keith-packard/snek/commit/5dbfa54f02e8a52991f512cea9b240c1306bde7f
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-02-23 (Sun, 23 Feb 2020)

  Changed paths:
    M chips/samd21/ao-adc-samd21.c

  Log Message:
  -----------
  chips/samd21: Try to stabilize ADC

Use lots more ao_adc_sync calls.
Do two conversions, discard the first.

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: 66d39dbadd0fb74856fa6e011bbf9f3e980a6633
      https://github.com/keith-packard/snek/commit/66d39dbadd0fb74856fa6e011bbf9f3e980a6633
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-03-03 (Tue, 03 Mar 2020)

  Changed paths:
    M doc/lessons/lesson-3/lesson-3-bumper-car.adoc

  Log Message:
  -----------
  doc/lessons/lesson-3: Fix missing element close

There was a missing closing mark after an example.

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: ba4de1b7685e30e75d86795b4cd62f033912ed15
      https://github.com/keith-packard/snek/commit/ba4de1b7685e30e75d86795b4cd62f033912ed15
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-04-17 (Fri, 17 Apr 2020)

  Changed paths:
    M snek.defs

  Log Message:
  -----------
  Use --gc-sections to reduce memory usage

Also include -ffunction-sections and -fdata-sections which are
required for --gc-sections to do anything useful.

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: 9b6497c55cc7080ef6c3fb7d54a8eac902d70099
      https://github.com/keith-packard/snek/commit/9b6497c55cc7080ef6c3fb7d54a8eac902d70099
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-04-17 (Fri, 17 Apr 2020)

  Changed paths:
    M chips/avr/snek-avr.defs

  Log Message:
  -----------
  chips/avr: avr doesn't use ao_panic at all

Remove from SRC

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: e72ebf2307763b197e063b261323beee80744c34
      https://github.com/keith-packard/snek/commit/e72ebf2307763b197e063b261323beee80744c34
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-04-17 (Fri, 17 Apr 2020)

  Changed paths:
    M ports/duemilanove/Makefile

  Log Message:
  -----------
  ports/duemilanove: Leave space for a tiny boot loader

Optiboot only takes 512 bytes, so let's leave space for that
to allow upgrading snek without needing a dongle.

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: f1d4c6e5079d810104042e0ffeabc887769de688
      https://github.com/keith-packard/snek/commit/f1d4c6e5079d810104042e0ffeabc887769de688
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-04-17 (Fri, 17 Apr 2020)

  Changed paths:
    M snek.h

  Log Message:
  -----------
  Re-order snek_variable to save code space

This saves four bytes on the duemilanove :-)

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: b537b2f2989fd3b96181b3919fce6a3f130cb5af
      https://github.com/keith-packard/snek/commit/b537b2f2989fd3b96181b3919fce6a3f130cb5af
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-04-17 (Fri, 17 Apr 2020)

  Changed paths:
    M ports/qemu-riscv/Makefile

  Log Message:
  -----------
  ports/qemu-riscv: Use -msave-restore to save code space

This is a RISC-V specific compiler switch which replaces explicit
push/pop register save/restore sequences with calls to functions which
do the same thing. The result is a nice savings of ROM space.

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: 01941c19e7b142a69402e156dca73f98994f886e
      https://github.com/keith-packard/snek/commit/01941c19e7b142a69402e156dca73f98994f886e
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-04-17 (Fri, 17 Apr 2020)

  Changed paths:
    M doc/lessons/lesson-5/pid-bug-one.py

  Log Message:
  -----------
  doc/lessons/lesson-5: Update example with real code

The real code needed setleft/setright swapped.

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: f0b0c0739496e2402a4ecd4177fc1f22a82812a0
      https://github.com/keith-packard/snek/commit/f0b0c0739496e2402a4ecd4177fc1f22a82812a0
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-04-17 (Fri, 17 Apr 2020)

  Changed paths:
    A doc/lessons/lesson-3/bumper-car.py

  Log Message:
  -----------
  lesson-3: Add bumper car source code

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: 65a87d4d9d165d2d9f19805b9f5bd0c094360099
      https://github.com/keith-packard/snek/commit/65a87d4d9d165d2d9f19805b9f5bd0c094360099
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-04-19 (Sun, 19 Apr 2020)

  Changed paths:
    M README.md

  Log Message:
  -----------
  Update README.md in preparation for next release

Change recent work

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: f29c9bfd76eec656a0bf3d0ba6c6431ee7fa1e73
      https://github.com/keith-packard/snek/commit/f29c9bfd76eec656a0bf3d0ba6c6431ee7fa1e73
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-04-19 (Sun, 19 Apr 2020)

  Changed paths:
    M debian/tests/control

  Log Message:
  -----------
  debian: Direct autopkgtest to use installed snek binaries

This tests native and microcontroller versions under qemu
using the installed versions, rather than those in the build tree.

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: 110bc71f654a63bb4f827e6834fcf2abb97711c1
      https://github.com/keith-packard/snek/commit/110bc71f654a63bb4f827e6834fcf2abb97711c1
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-04-20 (Mon, 20 Apr 2020)

  Changed paths:
    M snek.defs

  Log Message:
  -----------
  Add .S files to SNEK_OBJ

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: ef2fa911d2f8808b7357efbbff9f8d99c8475208
      https://github.com/keith-packard/snek/commit/ef2fa911d2f8808b7357efbbff9f8d99c8475208
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-05-01 (Fri, 01 May 2020)

  Changed paths:
    A chips/atmega/snek-atmega-time.c
    M chips/atmega/snek-atmega.defs
    M ports/duemilanove/snek-duemilanove.c
    M ports/mega/snek-mega.c

  Log Message:
  -----------
  chips/atmega: Improve timing precision

Instead of counting something approximating milliseconds, count raw
timer over flow values and mix in the current timer value to generate
a clock at the full precision of the timer, which runs at F_CPU/64.

On a 16MHz device, this offers a resolution of 4µs.

This also shares the time code between the duemilanove and mega ports.

Reported-by: Helmut Grohne <helmut at subdivi.de>
Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: b04c3caefe1ff5f2bdbeebfc38654f5854c1fc40
      https://github.com/keith-packard/snek/commit/b04c3caefe1ff5f2bdbeebfc38654f5854c1fc40
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-05-02 (Sat, 02 May 2020)

  Changed paths:
    M chips/avr/ao-snek-avr.c

  Log Message:
  -----------
  chips/avr: Improve timing precision

Instead of counting something approximating milliseconds, count raw
timer over flow values and mix in the current timer value to generate
a clock at the full precision of the timer, which runs at F_CPU/64.

On a 16MHz device, this offers a resolution of 4µs.

Reported-by: Helmut Grohne <helmut at subdivi.de>
Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: dca0da58224591f9921b3d633681511382838a0d
      https://github.com/keith-packard/snek/commit/dca0da58224591f9921b3d633681511382838a0d
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-05-02 (Sat, 02 May 2020)

  Changed paths:
    M chips/samd21/snek-altos.c
    M chips/samd21/snek-samd21.ld

  Log Message:
  -----------
  chips/samd21: Improve timing precision

The samd21 timer code already offered ns resolution; instead of
rounding to milliseconds, use all of the available resolution for
timing.

Reported-by: Helmut Grohne <helmut at subdivi.de>
Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: b2771e1fdcb1b08d81c68dcd75bd0de8aa41fa35
      https://github.com/keith-packard/snek/commit/b2771e1fdcb1b08d81c68dcd75bd0de8aa41fa35
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-05-02 (Sat, 02 May 2020)

  Changed paths:
    M ports/duemilanove/snek-duemilanove-install.1
    M ports/duemilanove/snek-duemilanove-install.in

  Log Message:
  -----------
  ports/duemilanove: Add optiboot support to install script

Now that the duemilanove port has enough space for the tiny optiboot
loader, add support for that in the install script and make it the
default. If you have programming dongle, you should use it to install
optiboot and then use that to install snek.

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: 092f034d37b2257bb55eba2090532940ca726b9b
      https://github.com/keith-packard/snek/commit/092f034d37b2257bb55eba2090532940ca726b9b
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-05-08 (Fri, 08 May 2020)

  Changed paths:
    M ports/hifive1revb/snek-metal-gpio.c

  Log Message:
  -----------
  ports/hifive1revb: Implement onfor()

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: 0c550ada3077cd8194748ce27e2c5a97536fded0
      https://github.com/keith-packard/snek/commit/0c550ada3077cd8194748ce27e2c5a97536fded0
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-05-08 (Fri, 08 May 2020)

  Changed paths:
    M ports/hifive1revb/snek-metal-gpio.c

  Log Message:
  -----------
  ports/hifive1revb: Remove debug printf from gpio code

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: c5ce657c004562ac555fe1d16d39ec30c17fa526
      https://github.com/keith-packard/snek/commit/c5ce657c004562ac555fe1d16d39ec30c17fa526
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-05-10 (Sun, 10 May 2020)

  Changed paths:
    M doc/Makefile
    M doc/lessons/lesson-1/Makefile
    M doc/lessons/lesson-2/Makefile
    M doc/lessons/lesson-3/Makefile
    M doc/lessons/lesson-4/Makefile

  Log Message:
  -----------
  Install pdf lessons in $(DOCDIR)/lessons

The doc Makefile didn't include the lessons, and each
lesson was just dumping everything into $(DOCDIR). Limit
install to just the .pdf files, and place those in a 'lessons'
subdirectory.

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: 1de0363d5f66709bd808c9126b48957f41c726b9
      https://github.com/keith-packard/snek/commit/1de0363d5f66709bd808c9126b48957f41c726b9
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-05-10 (Sun, 10 May 2020)

  Changed paths:
    A .github/Dockerfile
    M .github/workflows/snek.yml

  Log Message:
  -----------
  Create a container in the github action

Rather than using a pre-built one on dockerhub. This
keeps all of the necessary state in the snek repository
and makes it easy to modify the container contents when
necessary.

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: 055fe2c9657d8531a71568cc077e230d64c5dea4
      https://github.com/keith-packard/snek/commit/055fe2c9657d8531a71568cc077e230d64c5dea4
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-05-10 (Sun, 10 May 2020)

  Changed paths:
    M snek.defs

  Log Message:
  -----------
  Remove -ffunction-sections -fdata-sections for build

Using these reduces the opportunity for some intra module
optimizations, which increases code size on some platforms. As we
don't have any unused code or data, there's no reason to compile our
source with these flags. Leave the -Wl,--gc-sections link argument in
case there are opportunities to save space in libc.

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: ff65190e67620b87d9c0233633dc653a79384b62
      https://github.com/keith-packard/snek/commit/ff65190e67620b87d9c0233633dc653a79384b62
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-05-13 (Wed, 13 May 2020)

  Changed paths:
    M chips/samd21/ao-neopixel.c
    M chips/samd21/ao-snek.h
    M chips/samd21/snek-gpio.c
    M ports/crickit/ao-pins.h
    M ports/feather/ao-pins.h
    M ports/metrom0/ao-pins.h
    M ports/playground/ao-pins.h
    M ports/snekboard/ao-pins.h

  Log Message:
  -----------
  chips/samd21: Turn off built-in neopixels at init

This makes sure any built-in neopixels are turned off when the board
starts up, in case they were left on across reset, or if the chips
don't power up in an 'off' state (sigh). This means that any GPIOs
with built-in neopixels are going to get some traffic at startup.

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: b8c5192255d1eedca0b7edd3911bee293d4c06e2
      https://github.com/keith-packard/snek/commit/b8c5192255d1eedca0b7edd3911bee293d4c06e2
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-05-14 (Thu, 14 May 2020)

  Changed paths:
    M ports/snekboard/Makefile
    R ports/snekboard/bootloader-snekboard-v3.7.0.bin
    A ports/snekboard/bootloader-snekboard-v3.9.0.bin
    M ports/snekboard/snek-board-install.in

  Log Message:
  -----------
  ports/snekboard: Update bootloader to v3.9.0

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: eb052d75f223c3206d174b6b6181e663868e8a99
      https://github.com/keith-packard/snek/commit/eb052d75f223c3206d174b6b6181e663868e8a99
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-05-14 (Thu, 14 May 2020)

  Changed paths:
    A ports/snekboard/snek-board-test.py
    A ports/snekboard/turnon-snekboard

  Log Message:
  -----------
  ports/snekboard: Add hw tests and turnon script

These tests are designed to check hardware functionality, not verify
that snek operates correctly on the board. For now, that means making
sure the neopixels and motor controllers work.

The turnon script runs
snek-board-install and then the tests.

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: 922850f0c68ee75fc6cbc6ba0a90edac9b064f2c
      https://github.com/keith-packard/snek/commit/922850f0c68ee75fc6cbc6ba0a90edac9b064f2c
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-05-14 (Thu, 14 May 2020)

  Changed paths:
    M ports/snekboard/Makefile

  Log Message:
  -----------
  ports/snekboard: Install snek .elf file

The .elf file is used by snek-board-install, so it's important to
actually install it.

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: 76c474d3bd8f1a51be32e26f87b099066687e273
      https://github.com/keith-packard/snek/commit/76c474d3bd8f1a51be32e26f87b099066687e273
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-05-16 (Sat, 16 May 2020)

  Changed paths:
    M ports/snekboard/snek-board-install.in

  Log Message:
  -----------
  ports/snekboard: snek-board-install: Enable flash write to bootloader

If the bootloader has locked it's area, unlock it before replacing.

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: 903272724dc6ea6c4780cc454f770b3a3f24d792
      https://github.com/keith-packard/snek/commit/903272724dc6ea6c4780cc454f770b3a3f24d792
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-05-16 (Sat, 16 May 2020)

  Changed paths:
    M ports/snekboard/Makefile
    R ports/snekboard/bootloader-snekboard-v3.9.0.bin
    A ports/snekboard/bootloader-snekboard.bin
    M ports/snekboard/snek-board-install.in
    M snek-install.defs

  Log Message:
  -----------
  ports/snekboard: Remove version number from bootloader file

Tracking the version in the filename is a pain.

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: eb21eb898b69f4f1e26c2d0c1e042d8ef60b645f
      https://github.com/keith-packard/snek/commit/eb21eb898b69f4f1e26c2d0c1e042d8ef60b645f
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-05-16 (Sat, 16 May 2020)

  Changed paths:
    M ports/hifive1revb/metal/machine.h
    M ports/hifive1revb/metal/machine/inline.h
    M ports/hifive1revb/metal/machine/platform.h

  Log Message:
  -----------
  ports/hifive1revb: Update metal headers to match current bits

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: f108fdcbeb4b4221a88167fd86d839e2de264504
      https://github.com/keith-packard/snek/commit/f108fdcbeb4b4221a88167fd86d839e2de264504
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-05-16 (Sat, 16 May 2020)

  Changed paths:
    M doc/snek.adoc

  Log Message:
  -----------
  doc: Avoid 'source' mode when using bold attribute

Source disables attribute parsing in blocks, so disable that when
using bold/regular to demonstrate input/output in snek session.

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: af11b4fce18b56fe3bdb0d3d4a3bb0e000ef02f7
      https://github.com/keith-packard/snek/commit/af11b4fce18b56fe3bdb0d3d4a3bb0e000ef02f7
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-05-16 (Sat, 16 May 2020)

  Changed paths:
    M doc/Makefile

  Log Message:
  -----------
  doc: remove circular make dependency

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: 6ea583d72dbf81c1bdcc26160f21fc20f3cd6e99
      https://github.com/keith-packard/snek/commit/6ea583d72dbf81c1bdcc26160f21fc20f3cd6e99
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-05-16 (Sat, 16 May 2020)

  Changed paths:
    M .github/Dockerfile
    M .github/workflows/snek.yml

  Log Message:
  -----------
  Enable tests on ARM and RISC-V now that we have qemu available

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: a3b9a122702345e0892a364ad15f7487371f7934
      https://github.com/keith-packard/snek/commit/a3b9a122702345e0892a364ad15f7487371f7934
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-05-16 (Sat, 16 May 2020)

  Changed paths:
    M README.md

  Log Message:
  -----------
  Update README.md to note recent timer work

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: f72468c85c6de240ee025c69585b6812f38b3fda
      https://github.com/keith-packard/snek/commit/f72468c85c6de240ee025c69585b6812f38b3fda
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-05-16 (Sat, 16 May 2020)

  Changed paths:
    M snek.defs

  Log Message:
  -----------
  Version 1.4

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: 58ea3ff06d19a5b89dc8187ed4b5291489a4a3ee
      https://github.com/keith-packard/snek/commit/58ea3ff06d19a5b89dc8187ed4b5291489a4a3ee
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-05-16 (Sat, 16 May 2020)

  Changed paths:
    A .github/Dockerfile
    M .github/workflows/snek.yml
    M README.md
    A chips/atmega/snek-atmega-time.c
    M chips/atmega/snek-atmega.defs
    M chips/avr/ao-snek-avr.c
    M chips/avr/snek-avr.defs
    M chips/samd21/ao-adc-samd21.c
    M chips/samd21/ao-neopixel.c
    M chips/samd21/ao-snek.h
    M chips/samd21/snek-altos.c
    M chips/samd21/snek-gpio.c
    M chips/samd21/snek-samd21.ld
    M doc/Makefile
    M doc/lessons/lesson-1/Makefile
    M doc/lessons/lesson-1/lesson-1-snekboard.adoc
    M doc/lessons/lesson-2/Makefile
    M doc/lessons/lesson-2/lesson-2-line-bug.adoc
    M doc/lessons/lesson-3/Makefile
    A doc/lessons/lesson-3/bumper-car.py
    M doc/lessons/lesson-3/lesson-3-bumper-car.adoc
    A doc/lessons/lesson-4/.gitignore
    A doc/lessons/lesson-4/21980.dat.png
    A doc/lessons/lesson-4/3003.dat.png
    A doc/lessons/lesson-4/3022.dat.png
    A doc/lessons/lesson-4/3023.dat.png
    A doc/lessons/lesson-4/3034.dat.png
    A doc/lessons/lesson-4/3039.dat.png
    A doc/lessons/lesson-4/3040b.dat.png
    A doc/lessons/lesson-4/3460.dat.png
    A doc/lessons/lesson-4/3482.dat.png
    A doc/lessons/lesson-4/3634.dat.png
    A doc/lessons/lesson-4/3660.dat.png
    A doc/lessons/lesson-4/3666.dat.png
    A doc/lessons/lesson-4/3700.dat.png
    A doc/lessons/lesson-4/3701.dat.png
    A doc/lessons/lesson-4/3702.dat.png
    A doc/lessons/lesson-4/3738.dat.png
    A doc/lessons/lesson-4/3830.dat.png
    A doc/lessons/lesson-4/3831.dat.png
    A doc/lessons/lesson-4/3894.dat.png
    A doc/lessons/lesson-4/3895.dat.png
    A doc/lessons/lesson-4/41539.dat.png
    A doc/lessons/lesson-4/4459.dat.png
    A doc/lessons/lesson-4/4519.dat.png
    A doc/lessons/lesson-4/5306.dat.png
    A doc/lessons/lesson-4/62498c02.dat.png
    A doc/lessons/lesson-4/75973.dat.png
    A doc/lessons/lesson-4/879.dat.png
    A doc/lessons/lesson-4/Makefile
    A doc/lessons/lesson-4/lesson-4-washing-machine.adoc
    A doc/lessons/lesson-4/washing-machine-01.html
    A doc/lessons/lesson-4/washing-machine-01.png
    A doc/lessons/lesson-4/washing-machine-02.html
    A doc/lessons/lesson-4/washing-machine-02.png
    A doc/lessons/lesson-4/washing-machine-03.html
    A doc/lessons/lesson-4/washing-machine-03.png
    A doc/lessons/lesson-4/washing-machine-04.html
    A doc/lessons/lesson-4/washing-machine-04.png
    A doc/lessons/lesson-4/washing-machine-05.html
    A doc/lessons/lesson-4/washing-machine-05.png
    A doc/lessons/lesson-4/washing-machine-06.html
    A doc/lessons/lesson-4/washing-machine-06.png
    A doc/lessons/lesson-4/washing-machine-07.html
    A doc/lessons/lesson-4/washing-machine-07.png
    A doc/lessons/lesson-4/washing-machine-08.html
    A doc/lessons/lesson-4/washing-machine-08.png
    A doc/lessons/lesson-4/washing-machine-09.html
    A doc/lessons/lesson-4/washing-machine-09.png
    A doc/lessons/lesson-4/washing-machine-10.html
    A doc/lessons/lesson-4/washing-machine-10.png
    A doc/lessons/lesson-4/washing-machine-11.html
    A doc/lessons/lesson-4/washing-machine-11.png
    A doc/lessons/lesson-4/washing-machine-12.html
    A doc/lessons/lesson-4/washing-machine-12.png
    A doc/lessons/lesson-4/washing-machine-13.html
    A doc/lessons/lesson-4/washing-machine-13.png
    A doc/lessons/lesson-4/washing-machine-14.html
    A doc/lessons/lesson-4/washing-machine-14.png
    A doc/lessons/lesson-4/washing-machine-15.html
    A doc/lessons/lesson-4/washing-machine-15.png
    A doc/lessons/lesson-4/washing-machine-16.html
    A doc/lessons/lesson-4/washing-machine-16.png
    A doc/lessons/lesson-4/washing-machine-17.html
    A doc/lessons/lesson-4/washing-machine-17.png
    A doc/lessons/lesson-4/washing-machine-18.html
    A doc/lessons/lesson-4/washing-machine-18.png
    A doc/lessons/lesson-4/washing-machine-19.html
    A doc/lessons/lesson-4/washing-machine-19.png
    A doc/lessons/lesson-4/washing-machine.jpg
    A doc/lessons/lesson-4/washing-machine.ldr
    A doc/lessons/lesson-4/washing-machine.svg
    M doc/lessons/lesson-5/pid-bug-one.py
    R doc/models/washing-machine/21980.dat.png
    R doc/models/washing-machine/3003.dat.png
    R doc/models/washing-machine/3022.dat.png
    R doc/models/washing-machine/3023.dat.png
    R doc/models/washing-machine/3034.dat.png
    R doc/models/washing-machine/3039.dat.png
    R doc/models/washing-machine/3040b.dat.png
    R doc/models/washing-machine/3460.dat.png
    R doc/models/washing-machine/3482.dat.png
    R doc/models/washing-machine/3634.dat.png
    R doc/models/washing-machine/3660.dat.png
    R doc/models/washing-machine/3666.dat.png
    R doc/models/washing-machine/3700.dat.png
    R doc/models/washing-machine/3701.dat.png
    R doc/models/washing-machine/3702.dat.png
    R doc/models/washing-machine/3738.dat.png
    R doc/models/washing-machine/3830.dat.png
    R doc/models/washing-machine/3831.dat.png
    R doc/models/washing-machine/3894.dat.png
    R doc/models/washing-machine/3895.dat.png
    R doc/models/washing-machine/41539.dat.png
    R doc/models/washing-machine/4459.dat.png
    R doc/models/washing-machine/4519.dat.png
    R doc/models/washing-machine/5306.dat.png
    R doc/models/washing-machine/62498c02.dat.png
    R doc/models/washing-machine/75973.dat.png
    R doc/models/washing-machine/879.dat.png
    R doc/models/washing-machine/Makefile
    R doc/models/washing-machine/snek-washing-machine.adoc
    R doc/models/washing-machine/washing-machine-01.html
    R doc/models/washing-machine/washing-machine-01.png
    R doc/models/washing-machine/washing-machine-02.html
    R doc/models/washing-machine/washing-machine-02.png
    R doc/models/washing-machine/washing-machine-03.html
    R doc/models/washing-machine/washing-machine-03.png
    R doc/models/washing-machine/washing-machine-04.html
    R doc/models/washing-machine/washing-machine-04.png
    R doc/models/washing-machine/washing-machine-05.html
    R doc/models/washing-machine/washing-machine-05.png
    R doc/models/washing-machine/washing-machine-06.html
    R doc/models/washing-machine/washing-machine-06.png
    R doc/models/washing-machine/washing-machine-07.html
    R doc/models/washing-machine/washing-machine-07.png
    R doc/models/washing-machine/washing-machine-08.html
    R doc/models/washing-machine/washing-machine-08.png
    R doc/models/washing-machine/washing-machine-09.html
    R doc/models/washing-machine/washing-machine-09.png
    R doc/models/washing-machine/washing-machine-10.html
    R doc/models/washing-machine/washing-machine-10.png
    R doc/models/washing-machine/washing-machine-11.html
    R doc/models/washing-machine/washing-machine-11.png
    R doc/models/washing-machine/washing-machine-12.html
    R doc/models/washing-machine/washing-machine-12.png
    R doc/models/washing-machine/washing-machine-13.html
    R doc/models/washing-machine/washing-machine-13.png
    R doc/models/washing-machine/washing-machine-14.html
    R doc/models/washing-machine/washing-machine-14.png
    R doc/models/washing-machine/washing-machine-15.html
    R doc/models/washing-machine/washing-machine-15.png
    R doc/models/washing-machine/washing-machine-16.html
    R doc/models/washing-machine/washing-machine-16.png
    R doc/models/washing-machine/washing-machine-17.html
    R doc/models/washing-machine/washing-machine-17.png
    R doc/models/washing-machine/washing-machine-18.html
    R doc/models/washing-machine/washing-machine-18.png
    R doc/models/washing-machine/washing-machine-19.html
    R doc/models/washing-machine/washing-machine-19.png
    R doc/models/washing-machine/washing-machine.jpg
    R doc/models/washing-machine/washing-machine.ldr
    M doc/snek.adoc
    M ports/crickit/ao-pins.h
    M ports/duemilanove/Makefile
    M ports/duemilanove/snek-duemilanove-install.1
    M ports/duemilanove/snek-duemilanove-install.in
    M ports/duemilanove/snek-duemilanove.c
    M ports/ev3/Makefile
    A ports/ev3/motors.c
    A ports/ev3/motors.h
    M ports/ev3/sensors.c
    M ports/ev3/sensors.h
    M ports/ev3/snek-ev3.builtin
    M ports/ev3/snek-ev3.h
    M ports/ev3/snek-main.c
    M ports/ev3/utils.c
    M ports/ev3/utils.h
    M ports/feather/ao-pins.h
    M ports/hifive1revb/metal/machine.h
    M ports/hifive1revb/metal/machine/inline.h
    M ports/hifive1revb/metal/machine/platform.h
    M ports/hifive1revb/snek-metal-gpio.c
    M ports/mega/snek-mega.c
    M ports/metrom0/ao-pins.h
    M ports/playground/ao-pins.h
    M ports/qemu-riscv/Makefile
    M ports/snekboard/Makefile
    M ports/snekboard/ao-pins.h
    R ports/snekboard/bootloader-snekboard-v3.7.0.bin
    A ports/snekboard/bootloader-snekboard.bin
    M ports/snekboard/snek-board-install.in
    A ports/snekboard/snek-board-test.py
    A ports/snekboard/turnon-snekboard
    M snek-install.defs
    M snek.defs
    M snek.h

  Log Message:
  -----------
  Merge branch 'master' into debian


  Commit: 2256b9f5aa683cd1fc943c89b10e2dc82f68066b
      https://github.com/keith-packard/snek/commit/2256b9f5aa683cd1fc943c89b10e2dc82f68066b
  Author: Keith Packard <keithp at keithp.com>
  Date:   2020-05-16 (Sat, 16 May 2020)

  Changed paths:
    M debian/changelog

  Log Message:
  -----------
  debian: Version 1.4-1

Signed-off-by: Keith Packard <keithp at keithp.com>


Compare: https://github.com/keith-packard/snek/compare/138cd136473d...2256b9f5aa68


More information about the Snek mailing list