September 2022:
This has spread to a far wider audience than I had anticipated - probably my fault for using a title that is in hindsight catnip for link aggregators. I wrote this back in 2021 just as a bunch of personal thoughts of my experiences using Rust over the years (not always well thought through), and don't intend on trying to push them further, outside of personal experiments and projects.
Managing a living language is challenging and difficult work, and I am grateful for all the hard work that the Rust community and contributors put in given the difficult constraints they work within. Many of the things I listed below are not new, and there's been plenty of difficult discussions about many of them over the years, and some are being worked on or postponed, or rejected for various good reasons. For more thoughts, please see my comment below.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| ; Creality Ender-3 S1 Pro Optimal Start GCode for Cura Slicer Software. | |
| ; By John Scott, 2023. https://gist.github.com/JohnScottUK/8acd76895716b3abda4fde270738daf3 | |
| ;M117 Set Movement... | |
| G90; Use absolute positioning. | |
| M83; Use relative extrusion. | |
| ;M117 Heating Bed... | |
| M140 S{material_bed_temperature_layer_0}; Start heating bed. |
The problems below all require that you write a function that performs a simple data transformation on a generic, opaque set of data.
Note that many functions are variadic by way of the rest operator. If you're not sure what this means, read this.
These are the rules: