Commit Graph

2763 Commits

Author SHA1 Message Date
Scott Shawcroft
0f9fb33371
Merge branch 'main' into rp2040_cpu_frequency 2023-04-19 17:05:58 -07:00
Scott Shawcroft
e2ab7a4751
Change voltage. Refine docs 2023-04-19 17:04:54 -07:00
Scott Shawcroft
66edcf5d03
Add PicoDVI support
PicoDVI in CP support 640x480 and 800x480 on Feather DVI, Pico and
Pico W. 1 and 2 bit grayscale are full resolution. 8 and 16 bit
color are half resolution.

Memory layout is modified to give the top most 4k of ram to the
second core. Its MPU is used to prevent flash access after startup.

The port saved word is moved to a watchdog scratch register so that
it doesn't get overwritten by other things in RAM.

Right align status bar and scroll area. This normally gives a few
pixels of padding on the left hand side and improves the odds it is
readable in a case. Fixes #7562

Fixes c stack checking. The length was correct but the top was being
set to the current stack pointer instead of the correct top.
Fixes #7643

This makes Bitmap subscr raise IndexError instead of ValueError
when the index arguments are wrong.
2023-04-19 15:14:02 -07:00
gamblor21
403ea89d57 Initial paletts for OnDiskGif 2023-04-18 19:44:03 -05:00
Debian
304134c6a4 Fixed outdated reference link 2023-04-17 12:54:59 -06:00
RetiredWizard
a4cb73a567
Add MAX(0,xxx-1) to prevent potential display wrap 2023-04-16 18:42:00 -04:00
RetiredWizard
a8c78d8d2e displayio arg validation tweaking 2023-04-15 23:44:30 -04:00
Richard Ellis
ec78a23a56 Code changes to allow 64 character hex WiFi passwords to be used with
wifi.radio.connect.

Fixes adafruit/circuitpython#7677.
2023-04-15 22:54:57 -04:00
applecuckoo
add8f06b75
urandom is supported on nRF boards 2023-04-10 15:27:15 +12:00
Jeff Epler
992457c7f7
Improve documentation 2023-04-05 16:53:09 -05:00
Scott Shawcroft
6df88ac948
Merge pull request #7825 from jepler/better-synthio
Better synthio
2023-04-05 12:23:10 -07:00
Jeff Epler
9679aaa0be
Apply suggestions from code review
Co-authored-by: Scott Shawcroft <scott@tannewt.org>
2023-04-05 11:57:06 -05:00
Jeff Epler
3038b9a560
Update shared-bindings/keypad/ShiftRegisterKeys.c
Co-authored-by: Scott Shawcroft <scott@tannewt.org>
2023-04-05 11:56:21 -05:00
Jeff Epler
b9dea05dbf
Enable audiomixer on unix port, for testing 2023-04-05 09:02:03 -05:00
Jeff Epler
b011468251
Add synthio.Synthesizer
In contrast to MidiTrack, this can be controlled from Python code,
turning notes on/off as desired.

Not tested on real HW yet, just the acceptance test based on checking
which notes it thinks are held internally.
2023-04-02 20:37:23 -05:00
Jeff Epler
975c981e4f
fix some calls that needed to be _varg 2023-04-02 11:55:14 -05:00
Jeff Epler
8b05d11538
save 4 bytes memory since qstr constants are smol 2023-04-01 19:25:30 -05:00
Jeff Epler
62636cf722
Make a message more terse
This matches a bunch of other NotImplementedErrors
2023-04-01 19:24:06 -05:00
Jeff Epler
05cf5213e2
Allow disabling each class in keypad
.. for boards like pewpewm4 which need a specific kind. And need
some space.
2023-04-01 19:22:52 -05:00
Dan Halbert
cc0eeb430a
Merge pull request #7823 from dhalbert/wifi-connected
Add wifi.radio.connected, wifi.radio.ap_active
2023-04-01 15:01:43 -04:00
Jeff Epler
e9e4ce9546
add waveform support in synthio
a waveform object (array of 'h') can be passed in, replacing the
standard square wave. This waveform must be a 'single cycle waveform'
and some obvious things to pass in are sine, triangle or sawtooth waves,
but you can construct whatever you like.
2023-04-01 11:46:38 -05:00
Jeff Epler
13e17e6dcd
Make synthio debuggable in unix coverage port 2023-04-01 11:46:36 -05:00
Jeff Epler
02f8a45dfa
synthio: allow increasing number of channels
12 channels works well on metro m7
2023-04-01 11:46:27 -05:00
jposada202020
2f3ea81277 correcting 2023-03-31 20:29:29 -04:00
jposada202020
df46636c5e improving range validation 2023-03-31 20:15:07 -04:00
Dan Halbert
5c429320a8 Add wifi.radio.connected, wifi.radio.ap_active 2023-03-31 17:57:53 -04:00
jposada202020
9a77199f2e
Update shared-bindings/bitmaptools/__init__.c
Co-authored-by: Dan Halbert <halbert@halwitz.org>
2023-03-30 15:43:48 -04:00
jposada202020
4e332fb1c4
Update shared-bindings/bitmaptools/__init__.h
Co-authored-by: Dan Halbert <halbert@halwitz.org>
2023-03-30 15:28:42 -04:00
jposada202020
844ea2f60b
Update shared-bindings/bitmaptools/__init__.c
Co-authored-by: Dan Halbert <halbert@halwitz.org>
2023-03-30 15:28:15 -04:00
jposada202020
6ad053e403 correcting feedback 2023-03-30 08:51:52 -04:00
jposada202020
f3d85d6932 Merge branch 'main' into adding_circle_bitmaptools 2023-03-30 07:44:07 -04:00
Dan Halbert
a10ce2170c doc typo fix in OnDiskGif 2023-03-29 17:16:39 -04:00
Jeff Epler
cb5e1a1e98
mimxrt: Fix output frequency for samples that don't divide 192kHz
This makes all the samples from Dan's collection register as 440Hz
when playing on pwmio or i2sout, using https://webaudiodemos.appspot.com/pitchdetect/index.html
to detect the frequency played (all should show as A 440Hz; an error
of up to 20 "cents" should be treated as OK)

There's an audible carrier with PWM output and the 8kHz samples. This is
probably a limitation of the peripheral which is documented as being for
input signals of 44 kHz or 48 kHz; the carrier frequency is a fixed
multiple of the sample frequency.

Closes #7800
2023-03-28 10:18:28 -05:00
Dan Halbert
29b35804d9
Merge pull request #7548 from FoamyGuy/displayio_arg_validation
Displayio Bitmap arg validation
2023-03-28 10:30:06 -04:00
Dan Halbert
77cd20af8f
Merge pull request #7785 from jepler/mimxrt10xx-mqs
mimxrt10xx: Add PWMAudioOut
2023-03-27 20:46:11 -04:00
Jeff Epler
d6a067b0e5
Make PWMAudioOut object ll, have finaliser
.. for reasons stated in the comment
2023-03-27 10:52:23 -05:00
Jeff Epler
df916e0484
Merge remote-tracking branch 'origin/main' into mimxrt10xx-rotaryio 2023-03-23 13:02:12 -05:00
Dan Halbert
0639c0850f
Merge pull request #7751 from hathach/add-codespell
Add codespell to pre-commit to scan and fix typo
2023-03-23 13:26:24 -04:00
Jeff Epler
50ba218afb
PulseIn, Counter: give finali(s/z)ers to these types too
for similar reasons, an interrupt handler might point at these
objects, and we can worry less about it if the object deinits when it
is GC'd.
2023-03-23 09:57:32 -05:00
Jeff Epler
c45db1c1eb
incrementalencoder: give it a finaliser 2023-03-23 09:56:14 -05:00
Dan Halbert
db76fbd55f
Merge pull request #7712 from gamblor21/ondiskgif_freemem_fix
Add deinit to OnDiskGif
2023-03-23 09:03:07 -04:00
hathach
66129311f4
fix pre-commit format 2023-03-23 14:19:36 +07:00
hathach
8c1095b268
Merge branch 'main' into add-codespell 2023-03-23 14:09:57 +07:00
hathach
a8abe8e705
remove lib from exludes, fix all remaining typos 2023-03-23 13:59:08 +07:00
gamblor21
52631bb1c5 Restore OnDiskGif deinit 2023-03-22 22:30:38 -05:00
gamblor21
98ebc676ce Added documentation about freeing a GIF 2023-03-22 19:20:20 -05:00
gamblor21
07e83674c9 Add deinit to displayio.Bitmap 2023-03-22 19:20:20 -05:00
gamblor21
8b9f5e7f53 Remove del obj and add deinited 2023-03-22 19:20:20 -05:00
jposada202020
29613c73e1 pre-commit 2023-03-22 19:05:18 -04:00
jposada202020
0b3099a9ff adding bitmaptools circle 2023-03-22 18:44:45 -04:00
Scott Shawcroft
0eb08509f0
Make set_stack_limit respect fixed stack
Fixes #2830
2023-03-21 16:42:49 -07:00
Dan Halbert
7ee85408a1
Merge pull request #7755 from isacben/block-device-arguments-typing
Updated block_device type annotation
2023-03-21 12:51:40 -04:00
Scott Shawcroft
67e0a49a1f
Merge pull request #7724 from tannewt/get_perfbench_running
Improve iMX RT performance
2023-03-21 09:00:48 -07:00
Dan Halbert
d9d27a3e31
Fix signature of mkfs() 2023-03-21 10:30:03 -04:00
Isaac Benitez
9e630a565e Updated block_device type annotation 2023-03-19 15:08:29 -07:00
hathach
fecc1bdedb
fix typos (partial) detected by codepell 2023-03-18 22:17:02 +07:00
Dan Halbert
ca292f3427 Turn off mkfs FAT32 on all SAMD21 builds; note in doc 2023-03-17 12:18:24 -04:00
Dan Halbert
5569f101a7
Document that storage.VfsFat.mkfs() is a @staticmethod 2023-03-17 10:50:07 -04:00
Carlin Kartchner
058a8e65d8 define frame delay before reference 2023-03-16 18:22:24 -04:00
Scott Shawcroft
5bb8a7a7c6
Improve iMX RT performance
* Enable dcache for OCRAM where the VM heap lives.
* Add CIRCUITPY_SWO_TRACE for pushing program counters out over the
  SWO pin via the ITM module in the CPU. Exempt some functions from
  instrumentation to reduce traffic and allow inlining.
* Place more functions in ITCM to handle errors using code in RAM-only
  and speed up CP.
* Use SET and CLEAR registers for digitalio. The SDK does read, mask
  and write.
* Switch to 2MiB reserved for CircuitPython code. Up from 1MiB.
* Run USB interrupts during flash erase and write.
* Allow storage writes from CP if the USB drive is disabled.
* Get perf bench tests running on CircuitPython and increase timeouts
  so it works when instrumentation is active.
2023-03-14 12:30:58 -07:00
Dan Halbert
5ec586019b fix TimeAlarm signature 2023-03-14 13:27:57 -04:00
Dan Halbert
d4840cbf10 translate() messages must be one string 2023-03-14 13:13:58 -04:00
Scott Shawcroft
9251c6f988
Merge pull request #7684 from isacben/document-aeios-AES-rekey
Document aeios.AES.rekey() and refactor arg validation
2023-03-08 10:47:12 -08:00
Isaac Benitez
b7db2896d1 Second fix for the IV argument capitalization (documentation) 2023-03-07 10:12:57 -08:00
MicroDev
b9e478af39
Merge pull request #7471 from matemaciek/main
Add function for drawing polygons to bitmaptools
2023-03-07 08:28:07 +05:30
foamyguy
812fa2b34b change docstring, add example code. 2023-03-06 16:55:12 -06:00
Isaac Benitez
8955caff44 Fix capitalization of the IV argument (documentation) 2023-03-06 10:38:28 -08:00
Isaac Benitez
90155925d5 Document aeios.AES.rekey() and refactor arg validation 2023-03-05 12:58:40 -08:00
Dan Halbert
0ca6cc7741
Merge pull request #7668 from jepler/gifio-directio-example
document going directly to display with ondiskgif
2023-03-04 12:25:55 -05:00
Dan Halbert
2ac1c7a020
Add blank line after code-block 2023-03-04 11:59:31 -05:00
foamyguy
213a8bbdc1 Merge branch 'main' into displayio_arg_validation
# Conflicts:
#	shared-bindings/displayio/Palette.c
2023-03-04 10:11:47 -06:00
Dan Halbert
bac1a9625a OnDiskGif delay was being chopped to 8 bits 2023-03-02 16:47:07 -05:00
Jeff Epler
6eae40338c
fix problems spotted very quickly by gamblor :) 2023-03-01 17:56:18 -06:00
Jeff Epler
ac0bf1049a
document going directly to display with ondiskgif 2023-03-01 17:50:02 -06:00
Dan Halbert
5386cafa21 Update gifio and displayio documentation 2023-02-28 13:02:24 -05:00
Dan Halbert
f214d6b336
Merge pull request #7649 from jepler/improve-pwmio-documentation
Improve pwmio documentation
2023-02-25 21:35:06 -05:00
gamblor21
ce3da1ec66 Small doc change 2023-02-25 14:15:33 -06:00
Jeff Epler
07b3bd6d77
Improve pwmio documentation
#7644 pointed out the need for better documentation.

To the best of my ability I noted the current behavior.
I think that there may be some ports that do not actually read
back the 'set' frequency value, but they are ports marked as beta
status (mimxrt10xx) or not maintained by us (cxd56).
2023-02-25 11:02:49 -06:00
gamblor21
328a08729d Example fix 2023-02-25 09:16:33 -06:00
Dan Halbert
f9831b3bbc
Merge pull request #7639 from adafruit/8.0.x
Merge 8.0.x up to main
2023-02-24 19:32:09 -05:00
Dan Halbert
460dda0426
Merge pull request #7616 from dhalbert/8.0.x-fix-atmel-uart
Fix pad assignments on atmel-samd UART
2023-02-22 17:24:29 -05:00
Scott Shawcroft
de5f58a61d
Merge branch 'main' into banglejs2 2023-02-21 12:04:28 -08:00
Scott Shawcroft
a8b34bd067
Merge pull request #7549 from gamblor21/gif_displayio_support
Animated GIF support
2023-02-21 11:39:29 -08:00
foamyguy
3601bb3062 change value_count max 2023-02-20 20:37:42 -06:00
Dan Halbert
6d51356324 Fix pad assignments on atmel-samd UART 2023-02-19 20:42:44 -05:00
Dan Halbert
3f66a0be83
Merge pull request #7611 from gamblor21/colorconverter-mem-fix
ColorConverter output colorspace non-initialization fix
2023-02-19 20:34:30 -05:00
gamblor21
e78875a93b ColorConverter output colorspace fix 2023-02-18 15:35:56 -06:00
foamyguy
694537acb3 change validation maximum computation 2023-02-18 10:35:39 -06:00
gamblor21
c637ec9ea0 Removed forgotten func defn 2023-02-17 23:37:49 -06:00
gamblor21
b2a205e615 Doc fix 2023-02-17 15:48:26 -06:00
gamblor21
20eb7d11bd Changes times to seconds, remove dirty bitmap flag 2023-02-17 13:06:56 -06:00
Scott Shawcroft
931c7c1c51
Add Bangle.js 2, JDI memory displays and ACeP epd
This 2-in-1 PR started with the goal of support the Bangle.js 2
smartwatch with *no USB*.
* Adds "secure" DFU build support with a committed private key.
* Adds 3-bit color support with one dummy bit for the JDI memory display
* Allows nrf boards to have a board_background_task() run in RUN_BACKGROUND_TASK.
  This is needed because the Bangle.js 2 uses the watchdog to reset.
* Renamed port_background_task() to port_background_tick() to indicate it
  runs on tick, not RUN_BACKGROUND_TASK.
* Marks serial connected when the display terminal is inited. This means
  that safe mode messages show up on the display.

ACep, 7-color epaper displays also pack 3 bits in 4. So, I added that
support as well.
* Adds 3-bit ACeP color support for 7-color e-paper displays. (Not
  watch related but similar due to color depth.)
* Allows a refresh sequence instead of a single int command. The 7" ACeP
  display requires a data byte for refresh.
* Adds optional delay after resetting the display. The ACeP displays
  need this. (Probably to load LUTs from flash.)
* Adds a cleaning phase for ACeP displays before the real refresh.

For both:
* Add dither support to Palette.
* Palette no longer converts colors when set. Instead, it caches
  converted colors at each index.
* ColorConverter now caches the last converted color. It should make
  conversions faster for repeated colors (not dithering.)
2023-02-15 15:03:40 -08:00
Dan Halbert
328585f160 don't enter safemode.py on USER safe mode 2023-02-14 11:20:29 -05:00
Dan Halbert
d46d9d5c21 shorten safe mode messages; improve message printing; fix CIRCUITPY_SAFEMODE_PY=0 2023-02-13 21:29:57 -05:00
Mark
fa435468fa
Merge branch 'main' into gif_displayio_support 2023-02-13 18:30:51 -06:00
Dan Halbert
d8231f1588 Implement safemode.py 2023-02-13 18:26:38 -05:00
gamblor21
88212b066e Doc fix 2023-02-13 11:32:25 -06:00
gamblor21
cab38ed6a6 Doc fixes and renamed play_frame to next_frame 2023-02-12 11:51:23 -06:00
gamblor21
0c95e6a08e Moving to gifio module 2023-02-12 11:17:34 -06:00
gamblor21
da9b6fb0e2 Moving library to /lib 2023-02-10 18:31:59 -06:00
foamyguy
5f3f87e371 validate palette color count and group scale 2023-02-10 18:05:07 -06:00
foamyguy
67fd815e27 maximum value validation for bitmap constructor 2023-02-10 17:39:38 -06:00
foamyguy
bb4cccc1cd use range instead of min where applicable to consolodate bounds checks 2023-02-10 17:26:01 -06:00
gamblor21
19eba41630 Doc fixes and return next frame delay 2023-02-08 22:58:44 -06:00
foamyguy
efe48e61ed argument bounds validation for bitmap.blit() 2023-02-06 17:03:49 -06:00
gamblor21
dbe518680a Memory savings and more properties 2023-02-05 10:54:04 -06:00
gamblor21
2b26242c66 need gif.c in shared-bindings to build 2023-02-04 18:38:07 -06:00
gamblor21
6a9b7199ec Initial gif proof of concept 2023-02-04 16:44:29 -06:00
foamyguy
beb4a797ff bitmap fill, __get_item__, and __set_item__ positive validation 2023-02-04 12:37:43 -06:00
foamyguy
547ca5a452 bitmap constructor positive validation 2023-02-04 12:02:06 -06:00
MicroDev
d9d94eacca
run updated pre-commit 2023-02-01 13:38:41 +05:30
MicroDev
4ef363a797
improve dualbank and storage extension docs 2023-01-29 23:16:45 +05:30
Neradoc
f0058774d0 add CIRCUITPY_SKIP_SAFE_MODE_WAIT to circuitpy_mpconfig.mk
use #if (also a CIRCUITPY_ULAB)
2023-01-29 00:56:16 +01:00
MicroDev
cda5689263
move esp32_camera to espcamera 2023-01-27 22:05:43 +05:30
Maciej Sokołowski
e474df3a18 Add function for drawing polygons to bitmaptools 2023-01-20 23:14:38 +01:00
Dan Halbert
7dd76fc7e4
Merge pull request #7467 from matemaciek/main
Allow lines with ends out of bitmap in `bitmaptools_obj_draw_line`
2023-01-19 21:11:17 -05:00
Maciej Sokołowski
483f14b73f Allow lines with ends out of bitmap in bitmaptools_obj_draw_line 2023-01-19 21:37:25 +01:00
Scott Shawcroft
dca66eb98c
Watch for ctrl-c over BLE workflow serial
Before this, it was impossible to interrupt a running program over
BLE.
2023-01-18 16:28:35 -08:00
Dan Halbert
79b76f7bea
Merge pull request #7445 from tannewt/fix_rpi_mdns
Share the web workflow MDNS object with the user
2023-01-17 14:46:38 -05:00
Colin B
bfba1e4100 Change common_hal_mcu_processor_set_frequency to void
* Add warning about setting RP2040 frequency
2023-01-16 21:26:13 -08:00
Scott Shawcroft
8b0db804ba
Fix SPI readinto with negative start or end 2023-01-12 16:25:11 -08:00
Scott Shawcroft
987d9a31c8
Fix pin_or_none 2023-01-12 16:03:45 -08:00
Scott Shawcroft
ee2fe993dd
Fix repeated MDNS use on Pico W 2023-01-12 14:56:06 -08:00
Scott Shawcroft
ca80f30348
Share the web workflow MDNS object with the user
Fixes #7369
2023-01-11 16:05:19 -08:00
Scott Shawcroft
aa2ba4d88b
Have start and end kwargs respect element size
The comment says it is `buffer[start:end]` but it assumed elements
were a single byte long. Now it correctly does multibyte elements
from array.array.

Fixes #4988
2023-01-11 15:36:41 -08:00
Dan Halbert
a974402542 Improve type validation errors messages, especially for pins 2023-01-10 15:02:55 -05:00
Colin B
a84a8855ed Add frequency setting for RP2040 boards. 2023-01-07 17:41:37 -08:00
Scott Shawcroft
6b3ae630a9
Improve time alarm doc
Fixes #7406
2023-01-04 14:16:35 -05:00
Dan Halbert
03b43b7b3f complete rework for microcontroller.cpu.frequency and wifi.radio MAC addresses 2023-01-02 11:45:58 -05:00
Dan Halbert
a3adcf0e1a clarify read-only mac address; reuse translate msgs 2023-01-02 10:13:20 -05:00
Jeff Epler
928fb0a9c4
Make the "name or service not known" message translatable 2022-12-26 13:58:31 -06:00
Scott Shawcroft
c16b42e972
Tweak arg checking and comments 2022-12-20 11:00:13 -05:00
Scott Shawcroft
f8ac1d9261
Rework the coproc API
It is now a generic `memorymap` API and an ESP specific `espulp` module.

Fixes #7218. Fixes #3234. Fixes #7300.
2022-12-19 14:08:38 -05:00
Jeff Epler
297657ea9a
Refactor so that all sites of name lookup failure result in gaierror 2022-12-14 14:45:32 -06:00
Jeff Epler
5ac622a30d
get rid of nearly-empty getenv.c file 2022-12-13 13:13:01 -06:00
Jeff Epler
3459fe322b
Withdraw the _environ module
This existed solely for testing, so expose it a different way during
the unix coverage build

Also turn off os.getenv support on samd21.
2022-12-08 15:33:10 -06:00
Jeff Epler
a05829528b
_environ: update documentation 2022-12-08 13:36:48 -06:00
Jeff Epler
ef2bfdb5db
dotenv becomes settings.toml 2022-12-08 12:44:20 -06:00
s-ol
99b8564e8f Add VfsFat.readonly property for getting current state
Previously the only other way of determining whether the Vfs has been mounted
read-write or read-only appears to be to attempt a write operation and detect a
possible OSError.

It wasn't possible for the user code to keep track of the state of the state
since the boot VM has to decide whether to (re)mount read-write or read-only,
but can't (easily) pass this information on to the runtime VM.
2022-12-08 14:45:24 +01:00
Scott Shawcroft
4c064c263e
Merge pull request #7294 from tannewt/analogbufio_rework
Rework the analogbufio API.
2022-12-02 14:53:16 -08:00
Scott Shawcroft
d6c3dfb461
Merge pull request #7297 from jepler/chain-exception-doc
Implement the chain= argument of traceback.print_exception
2022-12-02 14:53:03 -08:00
Scott Shawcroft
f7504ff857
Tweaks based on review comments 2022-12-02 10:19:31 -08:00
Jeff Epler
b83c42e41a
Implement the chain= argument of traceback.print_exception 2022-12-02 10:50:31 -06:00
Scott Shawcroft
9e104c04ae
Merge pull request #7215 from FoamyGuy/set_root_group
displayio.show() API change
2022-12-02 08:45:20 -08:00
Scott Shawcroft
255e997345
Rework the analogbufio API.
* read() is now readinto() and takes the buffer to write into.
* readinto() returns the number of valid samples.
* readinto() can be interrupted by ctrl-c.
* readinto() API doesn't support signed numbers because it never did.
* sample_rate is now required in the constructor because supported
  values will vary per-port.
* 16 bit values are full range. 12 bit samples from RP2040 are stretched
  in the same way they are for AnalogIn.

Fixes #7226
2022-12-01 17:46:07 -08:00
Dan Halbert
082b0d1aed
Merge pull request #7191 from jepler/fastpixelmap
Add a fast PixelMap-like class
2022-12-01 11:43:00 -05:00
foamyguy
0563487433 get slicing 2022-11-30 19:16:20 -06:00
Jeff Epler
530e5a1df2
Use standard validation function 2022-11-30 14:39:51 -06:00
Jeff Epler
c46e219795
Having an input-only pin is rare, save a string on other ports 2022-11-30 14:39:49 -06:00
Jeff Epler
d39d146352
Merge some messages 2022-11-30 14:39:47 -06:00