Skip to content
This repository has been archived by the owner on Apr 24, 2024. It is now read-only.

Releases: Ze7111/Versace

Versace 3.1.0f

04 Nov 21:51
a781ba6
Compare
Choose a tag to compare

IMPORTANT: This is not a major update, but a very big bugfix update. Please update as soon as possible.

Added

  • Added a new config file, it is saved here C:\Users\<username>\versace\Windows-Versace-3.1.0f\config.ini on windows, if you installed with the Install Process
  • Added 3 modes of optimization to binary compiled files, 1 is no optimization using pyinstaller, 2 is some optimization still using pyinstaller, 3 is optimization for speed this uses cx_Freeze, **_

YOU MUST HAVE cx_Freeze INSTALLED TO USE THIS MAX OPTIMIZATION; YOU CAN INSTALL IT HERE

_**

  • You can open the config file with versace -cfg
  • Added header files, you can now create header files with the .vh extension, and import them with from [filename] include * this will import all the functions and classes imported in the header file.
  • Class functions can now be called with class::function() this is the same as class.function()
  • If you start a line of code with || it will keep the line exactly the same, this is useful if you want to run python code with indentations in versace.
  • Significantly improved the performance of the compiler, and the runtime performance of versace.
  • Greatly improved the error handling and reporting of versace.
  • Added new unicode characters to versace, to call the new characters here are all of them: \|, \-, \+, \>, \^, \<, \v, they correspond to \u2502, \u2500, \u253c, \u251c, \u2534, \u2524, \u252c respectively.
  • Added a new statement to out; erase this will erase the current line and move the cursor to the start of the line.
  • Added a new type of undefined constant, usize this will allow you to assign any value to it, and it will be treated as an weekly typed variable.

Changes/Fixes

  • Fixed the annoying issue where if thre was - in your filepath anywhere, versace would not run
  • Fixed the issue where versace would not run if there was a space in your filepath
  • All terminal arguments are changed to the following format:
Argument Description
-p Shows performance stats
-h Shows help
-v Shows version
-d Shows debug mode
-cfg Opens the config file
-f Forces the program to freeze before exiting
-c Compiles the file to a .py file
-o Compiles the file to a .exe file
-O1 or -1 Must be used with -o, and cannot be directly infront of -o, it compiles the file to a single slow-ish .exe file
-O2 or -2 Must be used with -o, and cannot be directly infront of -o, it compiles the file to a faster single directory with a .exe file
-O3 or -3 Must be used with -o, and cannot be directly infront of -o, it compiles the file to a the fastest .exe file, but nested with a lot of directories

Removed

  • Music still is not back, it might be added back in the future
  • . operator has been removed, it has been replaced with :: and :::

Install Process

Windows

  • Open powershell
  • MAKE SURE YOU REMOVE ANY PREVIOUS VERSIONS OF VERSACE (from PATH is enough)
  • Paste the following command into powershell and press enter
New-Item "$HOME\versace" -ItemType "directory" -Force
Invoke-WebRequest "https://github.com/Ze7111/Versace/releases/latest/download/Windows-Versace-3.1.0f.zip" -OutFile "$HOME\versace\versace.zip"
Expand-Archive "$HOME\versace\versace.zip" -DestinationPath "$HOME\versace" -Force
Remove-Item "$HOME\versace\versace.zip" -Force
[Environment]::SetEnvironmentVariable("Path", [Environment]::GetEnvironmentVariable("Path", "User") + ";$HOME\versace\Windows-Versace-3.1.0f", "User")
  • Once done, restart the terminal or whatever you are using to run versace
  • You can now test that versace is installed with versace -v
  • If that does not work, you can download the zip manually from the releases below and extract it to C:\Users\<username>\versace\Windows-Versace-3.1.0f
  • After that, you can add the path to the versace folder to your PATH variable, or you can just run the versace.exe file from the folder

Linux

  • Open terminal
  • MAKE SURE YOU REMOVE ANY PREVIOUS VERSIONS OF VERSACE (from PATH is enough)
  • Paste the following command into terminal and press enter
mkdir $HOME/versace
wget https://github.com/Ze7111/Versace/releases/latest/download/Linux-Versace-3.1.0f.zip
unzip Linux-Versace-3.1.0f.zip -d $HOME/versace
rm Linux-Versace-3.1.0f.zip
export PATH=$PATH:$HOME/versace/Linux-Versace-3.1.0f
  • Once done, restart the terminal or whatever you are using to run versace
  • You can now test that versace is installed with versace -v
  • If that does not work, you can download the zip manually from the releases below and extract it to $HOME/versace/Linux-Versace-3.1.0f
  • After that, you can add the path to the versace folder to your PATH variable, or you can just run the versace file from the folder

Mac

  • Open terminal
  • MAKE SURE YOU REMOVE ANY PREVIOUS VERSIONS OF VERSACE (from PATH is enough)
  • Paste the following command into terminal and press enter
mkdir $HOME/versace
wget https://github.com/Ze7111/Versace/releases/latest/download/Mac-Versace-3.1.0f.zip
unzip Mac-Versace-3.1.0f.zip -d $HOME/versace 
rm Mac-Versace-3.1.0f.zip
export PATH=$PATH:$HOME/versace/Mac-Versace-3.1.0f
  • Once done, restart the terminal or whatever you are using to run versace
  • You can now test that versace is installed with versace -v
  • If that does not work, you can download the zip manually from the releases below and extract it to $HOME/versace/Mac-Versace-3.1.0f
  • After that, you can add the path to the versace folder to your PATH variable, or you can just run the versace file from the folder

New naming-scheme in place:

x.x.xa
│ │ │╰─> Small Increments only denoted in alpabets
│ │ ╰──> Major Bug and Quality of life Increments
│ ╰────> Major internal changes, such as new syntax
╰──────> Major Update Increment

Full Changelog: 3.0.1c...3.1.0f

3.0.1c

30 Oct 19:11
1282321
Compare
Choose a tag to compare

Versace 3.0.1c

IMPORTANT

After you download go to the installed path, and rename the folders to remove the -

Added

  • Added new syntax, async func and const

  • The new async functions can be used to create asynchronous functions. (more technical details below)

    • The async functions use threads to run the code not processes, this allows for using the same memory space as the main thread.
    • If you call an async function from the main thread, it will spawn a new thread and run the code in that thread. and simultaneously continue the main thread.
  • Added a new const keyword, which can be used to create constants.

    • Constants can be used to create variables that cannot be changed.
    • Constants can be used to create variables that are only initialized once.
    • Constants can be used to create variables that are only initialized once, and cannot be changed.
  • Added a new compiler that can convert versace code to a binary executable.

    • The executable might be a bit slow but it will be fixed in the future.
    • The executable can be run on any system that has the versace runtime installed.
  • Added a new flag -p to the compiler this will show the runtime performance of versace, and also save the info to a file

  • Added a new config file, it is saved here C:\Users\<username>\versace\Windows-Versace-4.6.6\config.ini on windows, if you installed with the Install Process

  • You can open the config file with versace -cfg

  • Added header files, you can now create header files with the .vh extension, and import them with from [filename.vh] include * this will import all the functions and classes imported in the header file.

Changes/Fixes

  • Fixed a problem with the from <module> include * syntax, where if you imported a module and an other module inside that module, it would not work at all.
  • Fixed a problem with block comments, where */ would not close the comment.
  • Fixed a problem where if you put the { on the next line from the statement you were trying to use it with, it would not work.
  • Better support for python syntax
  • All arguments are changed to the following format:
Argument Description
-p Shows the performance statistics of the program
-d Runs the debug mode
-v Shows the version of the program
-h Shows the help menu
-o Compiles the versace code to a binary exe file
-c Compiles the versace code to a python file
-cfg Allows you to edit the config file
-f Forces the program to freeze before exiting

Removed

  • Music feature has been removed, it might be added back in the future

Install Process

Windows

  • Open powershell
  • Paste the following command into powershell and press enter
New-Item "$HOME\versace" -ItemType "directory" -Force
Invoke-WebRequest "https://github.com/Ze7111/Versace/releases/latest/download/Windows-Versace-4.6.6.zip" -OutFile "$HOME\versace\versace.zip"
Expand-Archive "$HOME\versace\versace.zip" -DestinationPath "$HOME\versace" -Force
Remove-Item "$HOME\versace\versace.zip" -Force
[Environment]::SetEnvironmentVariable("Path", [Environment]::GetEnvironmentVariable("Path", "User") + ";$HOME\versace\Windows-Versace-4.6.6", "User")
  • Once done, restart the terminal or whatever you are using to run versace
  • You can now test that versace is installed with versace -v
  • If that does not work, you can download the zip manually from the releases below and extract it to C:\Users\<username>\versace\Windows-Versace-4.6.6

Linux

  • Open terminal
  • Paste the following command into terminal and press enter
wget -O- https://raw.githubusercontent.com/Ze7111/Versace/root/installer/setup.sh | sh
  • Once done, restart the terminal or whatever you are using to run versace
  • You can now test that versace is installed with versace -v
  • If that does not work, you can download the zip manually from the releases below and extract it to $HOME/versace/Linux-Versace-4.6.6

Mac

  • There is no binary for mac, you will need to install the python file along with the dependencies and use it with python

Full Changelog: 4.1.1...4.6.6

Verscae 2.19.9f

12 Oct 13:24
5e2f765
Compare
Choose a tag to compare

NEW INSTALLER SCRIPT FOR EASY INSTALL IN UNDER 2 MINS

  • Download the install.py from here
  • After downloading, put the file in a good directory as this will be the permeant location for Verscae, on your machine
  • Run the python file and follow the instructions, and your done.
  • If you are on Windows or Linux you can now run Verscae files from anywhere in your computer.

Changes

  • Fixed a lot of broken and buggy items.
  • Added proper multi OS support, so now you can run the program on any OS without having to edit the code (in theory).
  • Added a new debug mode, so now you can debug your code and generate dump files. This is accessed by running the program with the --debug flag.
  • Added a new --version flag, so now you can check the version of the program.
  • Added a new --help flag, so if you want to know how to use the program, you can use the --help flag.
  • You can now use ; to separate statements on the same line. This is useful for when you want to write a lot of statements on the same line.
  • You can now use //// to show // inside a string or comment, before if you put // anywhere in a string or comment, it would break the code.
  • You can now import functions and classes from python modules, and use them in your code. This is done by using the include [function or class] from [module] keyword.
  • Added an auto installer that detects your os, installs the correct files, and adds them to path.

Make sure the verscae.exe is in your PATH or in the same dir as the file you want to run

  • How to run on Linux or MacOS:
python3 verscae.py filename.v

Make sure the verscae file for Linux is in your PATH or in the same dir as the file you want to run

The rest of the readme is available here

Requirements

  • Python 3.x is a must.
  • The rest of the module requirements are installed automatically when you run the program for the first time.
  • VScode is now optional but for the keyboard shortcuts it is recommended

---- READ EVERYTHING BELOW THIS LINE ----

  • If you want music to play when compiling, you can add the music file in the same dir as the verscae.py file and name it music.mp3

  • The command to play music while compiling is verscae filename.v -m on windows and python3 verscae.py filename.v -m on Linux or macOS

  • If you want to decompile a file, you can use the command verscae filename.v -d on windows and python3 verscae.py filename.v -d on Linux or macOS

  • If you want to decompile a file and play music while decompiling, you can use the command verscae filename.v -d -m on windows and python3 verscae.py filename.v -d -m on linux or macos (The order of the -d and -m dont matter)

  • If you want to debug a file, you can use the command verscae filename.v --debug on windows or linux and python3 verscae.py filename.v --debug on macOS

  • Remember each verscae file must have a .v extension and must start with the following:

public main() {
    // code here
}
  • Functions can go anywhere, this is a non-linear language, so you can call a function before it is defined.

  • You can also define a function inside another function, but you can't call it before it is defined.

  • For macOS the verscae.pyc file must be in the same dir as the files you want to run.

  • The VSCode keyboard shortcuts for MacOS is:

[
    {
        "key": "F6",
        "command": "workbench.action.terminal.sendSequence",
        "args": { "text": "python3 verscae.pyc '${file}'\u000D" }
    },
    {
        "key": "shift+F6",
        "command": "workbench.action.terminal.sendSequence",
        "args": { "text": "python3 verscae.pyc '${file}' -d\u000D" }
    },
    {
        "key": "ctrl+F6",
        "command": "workbench.action.terminal.sendSequence",
        "args": { "text": "python3 verscae.pyc '${file}' --debug\u000D" }
    }
]
  • For windows and linux you can add the verscae.exe and verscae files to your PATH and run from anywhere or you can add them to the same dir as the files you want to run.
  • The VSCode keyboard shortcuts for Windows and Linux is:
[
    {
        "key": "F6",
        "command": "workbench.action.terminal.sendSequence",
        "args": { "text": "verscae '${file}'\u000D" }
    },
    {
        "key": "shift+F6",
        "command": "workbench.action.terminal.sendSequence",
        "args": { "text": "verscae '${file}' -d\u000D" }
    },
    {
        "key": "ctrl+F6",
        "command": "workbench.action.terminal.sendSequence",
        "args": { "text": "verscae '${file}' --debug\u000D" }
    }

]
  • Thats it, enjoy the language, and if you have any suggestions, please let me know in the issues tab.

Notes

  • The zip files contain examples and a README.
  • The RAW files are only for people who want the bare minium, so no music, no readme or any examples.

Interesting sidenote, me adding the ; newline feature its really big now, as you can make 1 line programs, that are impossible to read but still become into proper python code when decompiled. like this example...

  • Single line Verscae Code
func pop(size) {; global stack; if len(stack) == 0 {; out < "[white on red]Stack is empty can not pop" < red < endl; sleep(2);}; else {; out < "[white on green]Popped successfully" < green < endl; stack = stack[1:]}return 0;}
  • Decompiled Python Code
def pop(size):
    global stack
    if len(stack) == 0:
        print("[white on red]Stack is empty can not pop", style="red", end="")
        sleep(2)
    else:
        print("[white on green]Popped successfully", style="green", end="")
        stack = stack[1:]
    return 0

Full Changelog: 4.0.0...4.0.5

Verscae 4.1.1

19 Oct 19:15
Compare
Choose a tag to compare

Versace 4.1.1

Much Improved Quality of Life additions

Changes

  • Significantly improved runtime speed on windows
  • Significantly improved runtime speed on linux
  • Significantly improved runtime speed on mac
  • Added a new base command line argument -debug which will enable debug mode and print out more information than before
  • To use this new feature, you can run the following command versace -debug
  • Added a new base command line argument -version which will print out the current version of versace
  • To use this new feature, you can run the following command versace -version
  • Added a new base command line argument -help which will print out the help menu
  • To use this new feature, you can run the following command versace -help
  • Fixed some truely horrible bugs
    • Fixed a bug where if you run out < varibalename it would not work and would print out the error Error: Invalid syntax
    • Fixed a bug where if you tried to make a class and put a function with public in it it would not work and would print out the error Error: Invalid syntax
  • Added support for private Variables you can now make a variable private by putting ! after the variable name, for example name! = "John"
  • Added support for syntax highlighting in Visual Studio Code, you can find the extension here
  • Added better error messages
  • Added a new command line intrepreter. You can now run versace in interactive mode by running versace without any arguments
    • There is very little support for this feature at the moment, but it will be improved in the future
    • You can exit interactive mode by running exit()
    • It does allow to run python code in interactive mode
    • There is no scope support in interactive mode, meaning there is no context to code, and it sees each line as a new line

Removed

  • Removed the | argument separator, you can now use < instead
  • Removed the // working in the middle of a line, you can now use //// instead to add a // in the middle of a line or a string

Broken

  • As of now music is broken.

READ THIS BEFORE YOU UPDATE

  • If you are updating from versace 3.0.1 or lower you will need to update your code to work with the new syntax changes
    • You will need to change all | to <
    • You will need to change all // to //// (this is only if your using it in a string)
    • You will need to change all private variables to use ! instead of _

Install Process

All Platforms

  • Download the installer.py file from this page
  • Run the installer.py file with python 3.5 or higher
  • Follow the instructions in the installer
  • You can now run versace by running versace in your terminal
  • This will not work on Mac OS
    • If you are on Mac OS you will need to download the versace.py file from this github repo and run it with python 3.5 or higher

Full Changelog: 4.0.5...4.1.1

Verscae 2.0.1a

08 Oct 20:29
56fa8b6
Compare
Choose a tag to compare
Verscae 2.0.1a Pre-release
Pre-release

Verscae 2.0.1b

Changes

  • Whole code is now a single python file, along with a compiled exe file for windows and Linux, along with a python compiled version for macOS.
  • Added support for importing other verscae files or python files.
  • Better error code displays
  • Significantly quicker overall (other then windows, idek why)
  • added flags: -m for music and -d for decompile
  • How to run on Windows?:
verscae filename.v

Make sure the verscae.exe is in your PATH or in the same dir as the file you want to run

  • How to run on Linux or MacOS:
python3 verscae.py filename.v

Make sure the verscae.py is in your PATH or in the same dir as the file you want to run

The rest of the readme is available here

Requirements

  • Python 3.x is a must.
  • VScode is now optional but for the automation tasks and the keyboard shortcuts it is recommended

---- READ EVERYTHING BELOW THIS LINE ----

  • If you want music to play when compiling, you can add the music file in the same dir as the verscae.py file and name it music.mp3

  • The command to play music while compiling is verscae filename.v -m on windows and python3 verscae.py filename.v -m on Linux or macOS

  • If you want to decompile a file, you can use the command verscae filename.v -d on windows and python3 verscae.py filename.v -d on Linux or macOS

  • If you want to decompile a file and play music while decompiling, you can use the command verscae filename.v -d -m on windows and python3 verscae.py filename.v -d -m on linux or macos (The order of the -d and -m dont matter)

  • Remember each verscae file must have a .v extension and must start with the following:

public main() {
    // code here
}
  • Functions can go anywhere, this is a non-linear language, so you can call a function before it is defined.

  • You can also define a function inside another function, but you can't call it before it is defined.

  • Thats it, enjoy the language, and if you have any suggestions, please let me know in the issues tab.

Notes

  • The zip files contain examples and a README.
  • The non-zip files are only for people who know what they are doing.

Full Changelog: 3.0.1...4.0.0

Verscae 1.2.1a

04 Oct 17:22
56fa8b6
Compare
Choose a tag to compare
Verscae 1.2.1a Pre-release
Pre-release

Verscae Release 1.2.1a

Changes

  • Added a new Beginner's Guide
  • expect Statements are now catch
  • elif Statements are not else if
  • Some performance changes under the hood
  • Major rework in the compiler and decompiler
  • Native support for Mac OSX and Linux
  • Fixed security flaws
  • More changes

Instructions

  • Downlaod the zip
  • Extract the zip anywhere
  • Open the dir of the new folder in vs code
  • The file Structure Should look something like this inside of VSCode
.vscode
|  | - tasks.json
|
verscae
|  | - ...
| - music.mp3
| - README.md
  • Then Follow the README.md

  • Open the .vscode folder

  • Open the tasks.json file

  • Press Ctrl+S to save the file

  • Open the command palette (Ctrl+Shift+P)

  • Type Preferences: Open Keyboard Shortcuts (JSON) and press enter

  • Add the following code to the file

    {
        "key": "F6",
        "command": "workbench.action.tasks.runTask",
        "args": "Run Verscae File"
    },
    {
        "key": "shift+F6",
        "command": "workbench.action.tasks.runTask",
        "args": "Decompile Verscae File"
    }
  • So the file should look like this:
[
    // Your other keybindings if you have any
    {
        "key": "F6",
        "command": "workbench.action.tasks.runTask",
        "args": "Run Verscae File"
    },
    {
        "key": "shift+F6",
        "command": "workbench.action.tasks.runTask",
        "args": "Decompile Verscae File"
    }
]
  • Save the file

  • And you're done!

  • Now you can press F6 to run the file and Shift+F6 to decompile the verscae file

  • You can also run the file by pressing Ctrl+Shift+B and selecting the task

  • Remember wherever you have a verscae file, you should have the verscae folder in the same directory

  • If you need help coding a DOCUMENTATION.md file is there in the verscae folder

Verscae 1.0.0a

03 Oct 15:47
56fa8b6
Compare
Choose a tag to compare
Verscae 1.0.0a Pre-release
Pre-release

Verscae Release 1.0.0a

Instructions

  • Downlaod the zip
  • Extract the zip anywhere
  • Open the dir of the new folder in vs code
  • The file Structure Should look something like this inside of VSCode
.vscode
|  |
|  tasks.json
|
verscae
|  |	
|  ...
|
music.mp3
|
README.md
  • Then Follow the README.md

  • Open the .vscode folder

  • Open the tasks.json file

  • Press Ctrl+S to save the file

  • Open the command palette (Ctrl+Shift+P)

  • Type Preferences: Open Keyboard Shortcuts (JSON) and press enter

  • Add the following code to the file

    {
        "key": "F6",
        "command": "workbench.action.tasks.runTask",
        "args": "Run Verscae File"
    },
    {
        "key": "shift+F6",
        "command": "workbench.action.tasks.runTask",
        "args": "Decompile Verscae File"
    }
  • So the file should look like this:
[
    // Your other keybindings if you have any
    {
        "key": "F6",
        "command": "workbench.action.tasks.runTask",
        "args": "Run Verscae File"
    },
    {
        "key": "shift+F6",
        "command": "workbench.action.tasks.runTask",
        "args": "Decompile Verscae File"
    }
]
  • Save the file

  • And you're done!

  • Now you can press F6 to run the file and Shift+F6 to decompile the verscae file

  • You can also run the file by pressing Ctrl+Shift+B and selecting the task

  • Remember wherever you have a verscae file, you should have the verscae folder in the same directory

  • If you need help coding a DOCUMENTATION.md file is there in the verscae folder

Version 4.0.0

02 Jan 21:54
Compare
Choose a tag to compare

MAJOR CHANGES

Full Changelog: 3.0.1...4.0.0