A little over 5 months ago Paled joined the Handmade Network website as a project. Since then, I have made some changes, and have put Paled on hiatus for a few months. Paled is now officially off of hiatus!
The paled shell itself is now written in Odin, however, not yet as feature-full as it once was. With this rewrite, I have also greatly improved the parsing and have been able to spot and fix some bugs. Note that this version is still very alpha. Not all of the necessary features are done.
The tools are still written in C. I plan on moving each one over to Odin eventually.
There is a new, very small, feature in Paled: Single Command Mode. With this mode, the shell will prompt for one command, run that command, and then exit. If the command executes a different program, instead of spawning a child process, the paled process will be overwritten. This can be used by passing "-s" as an argument to paled.
I have also added an Odin wrapper so that the Odin compiler can be used with paled. Paled also supports Ctrl+Backspace. It supported this in the C version also, but I wanted to give a shout out to this feature because it's one of my favorite, and simple, features in Paled.
Below, I want to outline some ideas I have for Paled in the future:
1. Programmable Autocompletion
2. Job and Socket control
3. Ability to pass information to and from the shell and programs
4. Subcommand REPL. Instead of programs handling command prompts themselves, Paled could provide this functionality for programs which can integrate better with the shell (e.g. the ability to call other programs from within the subcommand repl within Paled, the ability to quickly run background processes, using Paled features within the subcommand repl, etc.). This idea comes from TOPS-20, which had subcommands that you could batch at the command line (it used a comma ',' for this).
5. The ability to change or add default values for arguments to programs. You should be able to do this on the fly. There should also be a way to tell Paled to always pass a specified value into any arguments with a specified name (e.g. "with file='filename'" could always pass that file to all commands that have the argument 'file')
6. Aliases, which will also be able to have pre-defined parameter defaults
8. More programs and wrappers, of course. I have these programs and wrappers planned: download, trash, sudo, clang, gcc, pijul, git, go
Source Code: https://nest.pijul.org/krixano/paled
Download (Linux x64): https://krixano.github.io/paled-linux-x64.zip