Coder Social home page Coder Social logo

jumperbot / unsafe-4-bit Goto Github PK

View Code? Open in Web Editor NEW
2.0 1.0 0.0 7.73 MB

The UFB (Unsafe Four Bit) Programming Language -- FAST | EASY | VERBOSE -- Built With Rust

Home Page: https://jumperbot.github.io/Unsafe-4-Bit/

License: GNU General Public License v3.0

Shell 2.04% Rust 97.96%
programming programming-language computer-language new-programming-language programming-languages custom-programming-language programming-language-development active-development easy-to-use unsafe-4-bit

unsafe-4-bit's Introduction

  • ๐Ÿ‘‹ Hi, Iโ€™m @JumperBot
  • ๐Ÿ‘€ Iโ€™m interested in coding, and making YouTube videos.
  • ๐ŸŒฑ Iโ€™m currently learning everything.
  • ๐Ÿ’ž๏ธ Iโ€™m looking to almost nothing right now, but to finish my projects.
  • ๐Ÿ“ซ How to reach me? Go over here: YT Channel.

unsafe-4-bit's People

Contributors

jumperbot avatar

Stargazers

 avatar  avatar

Watchers

 avatar

unsafe-4-bit's Issues

:sparkles: Allow Non-ROM Characters! (Please)

Is your feature request related to a problem? Please describe.
Typing on all caps sounds like shouting. SHOUTING.

Describe the solution you'd like
Allow characters outside of bounds (256 and above)

Describe alternatives you've considered
Hack characters like: ., i and -

Additional context
This should be exactly released alongside #1 to avoid so much bugs.

:sparkles: Line By Line Compilation! (Please)

Is your feature request related to a problem? Please describe.
Compilling large files will be a problem in the future.

Describe the solution you'd like
Make the compiler compile and read the file line by line instead of reading it in just one batch.

:memo: False Dependency.

What to change
Change binary / package name from ufb to ufb-lang.

Additional context
False dependency:

Screenshot 2022-12-22 18 38 52

:sparkles: Allow Memory Indexes In String! (Please)

Is your feature request related to a problem? Please describe.
#1 doesn't allow memory indexes in a string, pretty useless now.

Describe the solution you'd like
Allow them with the $var syntax.

Describe alternatives you've considered
Just don't use #1 in certain cases at all.

:sparkles: Merge Interpreter And Compiler! (Please)

Is your feature request related to a problem? Please describe.
Switching between two directories just to do two short tasks doesn't feel so right.

Describe the solution you'd like
Combine both functions in one single .jar file to shorten dev-times.

Describe alternatives you've considered
Placing all the .class files in only one directory, not a good alternative.

:sparkles: Language Change! (Please)

Is your feature request related to a problem? Please describe.
Performance and portability; not all systems have Java installed, what a shame.

Describe the solution you'd like
Change the whole codebase from Java to Rust.

Describe alternatives you've considered
Write it in C? Pfft. Just kept on shooting myself in the foot.

:sparkles: Read/Write To Files! (Please)

Is your feature request related to a problem? Please describe.
I've been needing to automate file reads/writes, maybe it could be implemented here somehow.

Describe the solution you'd like
Make two new commands for writing or reading a file.

Describe alternatives you've considered
Using the bash syntax:

java UFB ThisFile.optimized.ufbb > WriteToThisFile.txt
java UFB ThisFileNeedsInput.ufbb < ReadThisFile.txt

Additional context
Probably a syntax like this:

rfile  38  <FILE_NAME_GOES_HERE>  // Read file into memory index 38
wfile  38  <FILE_NAME_GOES_HERE>  // Write data in memory index into a file

:sparkles: Substitute Memory Index With Data! (Please)

Is your feature request related to a problem? Please describe.
I have made the commands verbose enough, but I don't think everyone would like to memorize 38 characters in the memory.

Describe the solution you'd like
As the title suggests, let the programmer type the characters instead of typing accurate indexes.

Describe alternatives you've considered
Memorizing the memory table or opening a separate tab for it.

Additional context
It should go from this:

print  8   5   12  12  15

To this:

print  HELLO

โœจ Methods! (Please)

Is your feature request related to a problem? Please describe.
Counting commands using my fingers on my hands and toes doesn't really work out that well.
Also, methods would surely be needed!

Describe the solution you'd like

  • Add Labels
  • Add Command Number + Line Number In Compile-Time Errors
  • Add Methods Base-Implementation
  • Configure Compile-Time Command Number Counter Implementation For Methods
  • Add This To The Wiki

create the alternative to jump statements like:
- gm (goto LINE | if ARG1 > ARG2)
- gl (goto LINE | if ARG1 < ARG2)
- ge (goto LINE | if ARG1 == ARG2)
- gne (goto LINE | if ARG1 != ARG2)

Describe alternatives you've considered
Counting, and then forgetting what the last counted number was.

:sparkles: Delete / Create Files And Folders! (Please)

Is your feature request related to a problem? Please describe.
Not having a basic I/O feature is a problem.

Describe the solution you'd like
Commands to create or delete files and folders.

Describe alternatives you've considered
Manually creating / deleting them, quite literally.

Additional context
The new commands should look like:

  • cfile create a file
  • dfile delete a file
  • cfolder create a folder
  • dfolder delete a folder

:sparkles: Memory Index Labels! (Please)

Is your feature request related to a problem? Please describe.
Memorizing "which part of the memory is which" is going to be hard once things get crazy.

Describe the solution you'd like
Add a label syntatic sugar to make things easier.

Describe alternatives you've considered
Memorizing, or just keeping a table at hand.

Additional context
Maybe something that looks like this:

label 38, useMeLater
print ${useMeLater}
// Or
print "${useMeLater}\n"

That the compiler will turn into:

print 38
// Or
print "$038\n"

:bug: Colored Output Not Supported For Windows.

Describe the bug
Universal::err_exit(*) prints something like:

]99m*]0m

To Reproduce
Steps to reproduce the behavior:

  1. Call Universal::err_exit() on a Windows build.

Expected behavior
Colored output should be disregarded as an option if the OS is labeled as a Windows machine.

:bug: Commands Not Indexed In `#skip()`.

Describe the bug
Unindexed commands make j* commands mess up.

To Reproduce
Steps to reproduce the behavior:

  1. Write a simple program with jumps and newer commands
  2. Compile and run the program

Expected behavior
All commands should be indexed in #skip() so that the jump commands would work properly.

:bug: Ignoring Unrecognized Commands Gone Wrong.

Describe the bug
Ignoring unrecognized commands is one of the core features of UFB's backwards compatibility.
But it will prove to be quite dangerous once the new features from #7 and #2 comes out.
Calling this a bug since it can induce unintended behaviors to come out of nowhere.
It can also be called a security issue but it has not come to that point yet.

To Reproduce
Steps to reproduce the behavior:

  1. Include unrecognized commands to the compiled file.
  2. Inject masked code that can induce unintentional / intentional malicious activities.

Expected behavior
There should be at least one more gate to stop the code from executing...
once an unrecognizable command has been reachead.

:sparkles: Change IO Error Distribution! (Please)

Is your feature request related to a problem? Please describe.
a program dying out of nowhere without the programmer knowing is not good.

Describe the solution you'd like

  • Instead Of Throwing A SIGTERM, Why Not Write An Error Code Instead?
  • Edit Wiki To Include Breaking Changes

Additional context
Probable error codes:

Code Meaning
0 Everything's Fine
1 File Not Found
2 Not A File
3 No Permission To Access Filesystem
4 Storage Full / FS Quota Exceeded / ...
5 No Idea, User Intervention?

:sparkles: More Verbose Compiler Errors! (Please)

Is your feature request related to a problem? Please describe.
Guessing which line & command an error occurs is time-consuming.

Describe the solution you'd like
Add the problematic line and command number to the error message.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.