Releases: Ze7111/Versace
Versace 3.1.0f
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 usingpyinstaller
,2
is some optimization still usingpyinstaller
,3
is optimization for speed this usescx_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 withfrom [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 asclass.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
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
andconst
-
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 withfrom [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
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 itmusic.mp3
-
The command to play music while compiling is
verscae filename.v -m
on windows andpython3 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 andpython3 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 andpython3 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 andpython3 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
andverscae
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
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 errorError: 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
- Fixed a bug where if you run
- Added support for private Variables you can now make a variable private by putting
!
after the variable name, for examplename! = "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_
- You will need to change all
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
- If you are on Mac OS you will need to download the
Full Changelog: 4.0.5...4.1.1
Verscae 2.0.1a
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 itmusic.mp3
-
The command to play music while compiling is
verscae filename.v -m
on windows andpython3 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 andpython3 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 andpython3 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
Verscae Release 1.2.1a
Changes
- Added a new Beginner's Guide
expect
Statements are nowcatch
elif
Statements are notelse if
- Some performance changes under the hood
- Major rework in the compiler and decompiler
- Native support for
Mac OSX
andLinux
- 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 andShift+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
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 andShift+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
MAJOR CHANGES
Full Changelog: 3.0.1...4.0.0