Skip to content

Tab completion and OSCLI-safe local/global loading and execution of non-MOSlet .bins#128

Open
HeathenUK wants to merge 6 commits intobreakintoprogram:mainfrom
HeathenUK:bin_exec_tab
Open

Tab completion and OSCLI-safe local/global loading and execution of non-MOSlet .bins#128
HeathenUK wants to merge 6 commits intobreakintoprogram:mainfrom
HeathenUK:bin_exec_tab

Conversation

@HeathenUK
Copy link
Contributor

@HeathenUK HeathenUK commented Jan 22, 2024

This adds:

  • Tab completion for paths/filenames and commands.
  • Automatic loading and execution of non-MOSlet .bin files either from a global location (/bin/) or from within the current working directory, i.e. as for MOSlets, enter "binaryname" and if binaryname.bin is either in /bin/ or in the current working directory, it will be loaded and run.

This is particularly necessary now that we are getting to the point where it's simply impossible to fit some code in MOSlet space, such as Sijnstra's excellent gunzip utility.

There are guard rails to prevent invocation of non-MOSlets from OSCLI (and therefore from within BASIC etc.) which will work for any Agon app that uses this function, preventing a user trashing running code and working RAM.

The priority order for tab resolution/execution in both cases is: built in commands, MOSlets (in /mos/), global (/bin/) .bin files, and finally .bin files in the current working directory.

The designs of these two features are necessarily interdependent with one another because of the assumptions you need to make in code, hence one PR for both otherwise unrelated features.

This is mutually exclusive with the two other PRs (now closed) for local and global non-MOSlet bin loading execution and tab completion.

@HeathenUK HeathenUK changed the title Bin exec tab Tab completion and OSCLI-safe local/global loading and execution of non-MOSlet .bins Jan 22, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant