Skip to content

Soplang v2.0.0

Latest
Compare
Choose a tag to compare
@github-actions github-actions released this 26 May 17:22
· 1 commit to main since this release

🚀 Soplang v2.0.0 Release

🛠️ Downloads

Platform File Checksum
Windows soplang-2.0.0-windows.exe TBD
Linux soplang-2.0.0-linux.deb TBD
macOS soplang-2.0.0-macos.dmg TBD

🐳 Docker Images

Docker images are automatically built and pushed to Docker Hub and GitHub Container Registry:

Quick Start with Docker

v2.0.0-beta 2025-05-26

Added

  • feat: implement kudhow() for random number and list item selection @sharafdin

  • feat: add dherer() function to return length of lists, strings, and objects @sharafdin

  • feat: implement jar() to slice substrings by index @sharafdin

  • feat: implement kudar() for joining a list of strings @sharafdin

  • feat: implement beddel() to replace part of a string @sharafdin

  • feat: implement bilow() method to check string prefix @sharafdin

  • feat: implement dhamaad() to check string suffix match @sharafdin

  • feat: add kor() to round numbers up to the nearest integer @sharafdin

  • feat: implement leeyahay() method to check if a string contains a substring @sharafdin

  • feat: add daji() to round numbers down to nearest integer @sharafdin

  • feat: implement qeybi() method to split strings by delimiter @sharafdin

  • feat: implement lamaane() to return [key, value] pairs from walax @sharafdin

  • feat: add walax.qiime() method for getting all values from an object @sharafdin

  • feat: add nadiifi() method to clear all keys from a walax @sharafdin

  • feat: implement nuqul() for walax to create shallow object copies @sharafdin

  • feat: add 'raadso()' and support negative indexing in lists @sharafdin

  • feat: Implement aaddin() method in interpreter and builtins @sharafdin

  • feat: Implement aaddin() method for list transformations @sharafdin

  • feat: add jar(start, end) method to slice lists @sharafdin

  • feat: Enhance madoor implementation with improved Somali error messages including line and position information @sharafdin

  • feat: Add madoor keyword for constants with type validation @sharafdin

  • feat: Implement shaandhee (list_filter) method in builtins and update test examples @sharafdin

  • feat: Add shaandhee method for filtering lists in Soplang @sharafdin

  • feat: Allow return statements with and without parentheses for comparison expressions @sharafdin

  • feat: add habee() method to sort lists in-place @sharafdin

  • feat: add rog() to reverse lists in-place @sharafdin

  • feat: add nadiifi() to clear all items from a list @sharafdin

  • feat: add nuqul() method for shallow copying lists @sharafdin

  • feat: add dooro (x) / xaalad switch-case syntax @sharafdin

  • feat: Rename qor to bandhig across the codebase @Elkenzi

  • feat: Implement Docker automation for builds and releases @sharafdin

  • feat: enhance changelog generation with GitHub links and improve release process @sharafdin

  • feat: Add error massages @sharafdin

Fixed

  • fix: rename kudhow to xul in navbar [Muna Abdullahi]

  • fix: improve handling of comparison operators in expressions @sharafdin

  • fix: update Docker Hub description workflow with improved checks @sharafdin

  • fix: improve Docker Hub description handling and add verification steps @sharafdin

  • fix: Docker build process and workflow authentication @sharafdin

  • fix: correct CHANGELOG.md formatting with proper GitHub links @sharafdin

  • fix: resolve duplicate Unreleased sections and improve username linking in changelog @sharafdin

  • fix: correct changelog format with proper username links and remove duplicate unreleased sections @sharafdin

  • fix: improve changelog generation for first release @sharafdin

  • fix: replace PR approach with direct commits in release workflow @sharafdin

  • fix: resolve GitHub Actions permission issues by using PR approach @sharafdin

  • fix: update release workflow to handle readline dependency issue @sharafdin

  • fix: Update error message formatting to properly display line and position with translations @sharafdin

  • fix: Add support for method calls in parser and interpreter @sharafdin

    Fixed an issue in the parser that was failing to handle method calls properly, causing examples like 03_functions.so to fail with the error 'Unexpected token: TokenType.LEFT_PAREN'.

Changed

  • refactor: centralize version management and fix Windows version format @sharafdin

  • refactor: centralize version management and fix Windows version format @sharafdin

  • refactor: clarify number types with tiro and jajab @sharafdin

  • refactor: replace by with :: in loop step syntax @sharafdin

  • refactor: remove and apply new parentheses-based loop syntax @sharafdin

Documentation

  • docs: update grammar.ebnf to include daji and built-in functions @sharafdin

  • docs: update documentation for walax.nuqul() method @sharafdin

  • docs: update old Soplang keywords in examples and docs only @iftiiin

  • docs: fix grammar inconsistencies in loop syntax and data types @sharafdin

  • docs: update documentation to maintain keyword consistency @sharafdin

  • docs: update documentation for improved operator expression handling and switch-case syntax @sharafdin

Build

  • ci: update release workflow for manual binary builds @sharafdin

  • ci: add automated release workflow and documentation @sharafdin

Other

  • chore(release): bump version to 2.0.0-beta for Windows beta release @sharafdin

  • rm mvp @sharafdin

  • Fix example files to work with renamed keywords and add test script. @sharafdin

  • Rename tiro → abn (scalar: abyoone) @Abdiladiif-Abdisamed

  • Rename liis → teed @Abdiladiif-Abdisamed

  • Rename raadso() → muuji() @Abdiladiif-Abdisamed

  • Rename-bandhig-to-qor @Abdiladiif-Abdisamed

  • Rename tirtir() → tir() @Abdiladiif-Abdisamed

  • changed delim to xad @sharafdin

  • chore: removed grammar.md file and expressions.md @sharafdin

  • chore: remove object-oriented, error handling, and module import keywords @sharafdin

  • Update documentation for Soplang: grammar.md, keywords.md, and grammar.ebnf with new keywords and methods. @sharafdin

  • chore: remove old examples/errors test folder @iftiiin

  • Fix number type handling: treat floats (even with zero decimals) as jajab type and preserve decimal display @sharafdin

  • Fix kudar method to work with both single values and arrays. Modified list_concat to handle push operations when given a non-list value and concatenate operations when given a list value. @sharafdin

  • fix comparison operators @sharafdin

  • fix logical operator @sharafdin

  • fix the greater and comparison @sharafdin

  • changed length to dherer @sharafdin

  • Fix token type inconsistencies in lexer and parser for version 2.0 keywords @sharafdin

  • Fix token type inconsistencies in lexer and parser for version 2.0 keywords @sharafdin

  • Update examples directory to reflect changes in keywords for version 2.0 @sharafdin

  • 🔁 Rename inta_ay to intay in examples @shiinedev

  • 🔁 Rename inta_ay to intay in grammer.ebng @shiinedev

  • 🔁 Rename inta_ay to intay in docs @shiinedev

  • 🔁 Rename inta_ay to intay in src @shiinedev

  • 🔁 Rename nuuc to nooc in errors.py file @shiinedev

  • 🔁 Rename nuuc to nooc in bultins.py file @shiinedev

  • 🔁 Rename nuuc to nooc in interprete.py file @shiinedev

  • 🔁Rename nuuc to nooc in user_input.sop file @shiinedev

  • 🔁Rename nuuc to nooc in type_conversion.sop file @shiinedev

  • 🔁Rename nuuc to nooc in object_operation.sop file @shiinedev

  • 🔁Rename nuuc to nooc in type_checking_sop file @shiinedev

  • 🔁Rename nuuc to nooc in keyword.md file @shiinedev

  • 🔁Rename nuuc to nooc in errors.c file @shiinedev

  • 🔁Rename nuuc to nooc in builtin.c file @shiinedev

  • 🔁Rename nuuc to nooc in testing @shiinedev

  • 🔁Rename nuuc to nooc in TEST_EXAMPLES_README file @shiinedev

  • 🔁Rename nuuc to nooc in examples.md file @shiinedev

  • Rename iskuxir to kudar in soplang [Aisha (sarajohn786)]

  • Rename iskuxir to kudar in soplang [Aisha (sarajohn786)]

  • Rename iskuxir to kudar in docs and grammer [Aisha (sarajohn786)]

  • renamed akhri to gelin in examples @Nasrah-muse

  • renamed akhri to gelin in docs @Nasrah-muse

  • renamed akhri to gelin in src @Nasrah-muse

  • renamed shey to walax @star-Elmi

  • renamed shey to walax @star-Elmi

  • renamed howl to hawl @star-Elmi

  • Rename iskudar to kudar in soplang [Aisha (sarajohn786)]

  • Rename iskudar to kudar in docs and grammar [Aisha (sarajohn786)]

  • Update: renamed 'ka_kooban' to 'leeyahay' in grammar.ebnf @juweyriyo

  • Update: rename 'ka_kooban' to 'leeyahay' in grammar.md @juweyriyo

  • Update: rename 'ka_kooban' to 'leeyahay' in keywords.md @juweyriyo

  • Update: rename 'ka_kooban' to 'leeyahay' in EXAMPLES.md @juweyriyo

  • Update: rename 'ka_kooban' to 'leeyahay' in 11_list_operations.sop @juweyriyo

  • Rename 'ka_kooban' to 'leeyahay' in builtins.py @juweyriyo

  • Update grammar definition: rename 'haystaa' to 'leeyahay' for consistency @juweyriyo

  • Update grammar and keywords docs: rename 'haystaa' to 'leeyahay' @juweyriyo

  • Update examples: rename 'haystaa' to 'leeyahay' in tests and operations @juweyriyo

  • Rename 'haystaa' to 'leeyahay' in builtins.py @juweyriyo

  • Update grammar rules: rename 'furaha' to 'fure' in grammar definitions @juweyriyo

  • Update grammar doc: rename 'furaha' to 'fure' for consistency @juweyriyo

  • Update docs: rename 'furaha' to 'fure' in keywords and examples @juweyriyo

  • Update examples: rename 'furaha' to 'fure' in object operations @juweyriyo

  • Rename 'furaha' to 'fure' in builtins.py @juweyriyo

  • Rename ku_celi to kuceli @Abdiladiif-Abdisamed

  • Rename sii_wad to soco @Abdiladiif-Abdisamed

  • Rename waxba to maran @Abdiladiif-Abdisamed

  • renamed labadaran to bool @star-Elmi

  • renamed haddii_kalena to ugudambeyn in grammar.ebnf @Nasrah-muse

  • renamed haddii_kalena to ugudambeyn in README file @Nasrah-muse

  • renamed haddii_kalena to ugudambeyn in examples @Nasrah-muse

  • renamed haddii_kalena to ugudambeyn in docs @Nasrah-muse

  • rename haddii_kalena to ugudambeyn in tests @Nasrah-muse

  • rename haddii_kalena to ugudambeyn in src @Nasrah-muse

  • renamed howl to hawl @sharafdin

  • renamed soo_celi to celi @star-Elmi

  • renamed howl to hawl at files test , parser @star-Elmi

  • Renamed howl to hawl @star-Elmi

  • Fix Docker file access issue and add helper script @sharafdin

  • Update Docker workflow to only run on tags and releases @sharafdin

  • Simplify Soplang output by removing all decorative elements @sharafdin

  • Remove Docker Hub description update steps from workflow @sharafdin

  • Change primary file extension from .so to .sop while keeping .so as secondary @sharafdin

  • added soplang v1.0.0 changelog @sharafdin

  • removed unreleased section @sharafdin

  • changed GITHUB_TOKEN to Soplang_Release_Token @sharafdin

  • Fix failing tests to match actual implementation behavior @omartood

  • Add comprehensive installation guide and simplify README @sharafdin

  • Remove legacy scripts from the root directory @sharafdin

  • Reorganize build system with platform-specific scripts and move legacy scripts @sharafdin

  • Add macOS build support with app bundle and DMG creation @sharafdin

  • Add Linux build support with deb package creation @sharafdin

  • Updated file associations to use main soplang.exe directly instead of batch wrapper @sharafdin

  • Fix Soplang Command Prompt shortcut to use direct path setting instead of batch script @sharafdin

  • Fix Soplang launcher scripts to properly run interactive shell @sharafdin

  • Fix Windows display and launch issues: Show Soplang Interpreter in Control Panel and prevent application from closing immediately @sharafdin

  • Fix soplang verison name @sharafdin

  • Improve shell display and icon handling: Fix formatting issues in Windows console, enhance icon generation, and improve welcome message @sharafdin

  • Fix Windows build issues: add Windows-specific requirements file, improve error handling and permissions in build scripts @sharafdin

  • Update publisher name to 'Soplang Software Foundation' and simplify version display @sharafdin

  • Fix file extension, publisher unknow, and readline error @sharafdin

  • Fix Windows build issues: make readline optional, add prompt_toolkit submodules, fix Inno Setup flags @sharafdin

  • Add Windows build support @sharafdin

  • fix errors in repl @sharafdin

  • Update Soplang grammar and documentation: add list/object methods, and support Somali boolean literals @sharafdin

  • Update grammar and documentation with error message format and translation terms @sharafdin

  • Fix error examples: Remove semicolon from runtime_errors.so and update type_errors.so @sharafdin

  • Refactor parse_statement to include line and position info in generated AST nodes @sharafdin

  • Add helper method to create AST nodes with line and position info @sharafdin

  • Add line and position tracking to ASTNode and update interpreter to include location information in error messages @sharafdin

  • Fix error formatting to properly display Somali error messages with all placeholders replaced @sharafdin

  • Fix error handling to properly display Somali error messages and make qor() function handle missing arguments @sharafdin

  • Fix parser errors and update lexer and parser implementation @sharafdin

  • Simplify error messages to be Somali-only without English translations @sharafdin

  • Fix: Use consistent Somali type names (qoraal, tiro, liis, shey) instead of English type names in error messages and outputs @sharafdin

  • Update testing documentation with new files and remove outdated ones @sharafdin

  • Fix: Added support for akhri function in expressions and created example 15 for user input @sharafdin

  • Add support for list and object operations (examples 11 and 12) @sharafdin

  • fix haddii_kalena @sharafdin

  • fix haddii_kalena @sharafdin

  • Fix formatting in the loop step (by) implementation @sharafdin

  • fix haddii_kalena @sharafdin

  • Fix logical operators (NOT) with unary operation implementation @sharafdin

  • Fix comparison operators in assignments and expressions @sharafdin

  • Fix: Added support for unary operators in parser to handle negative numbers @sharafdin

  • Fix: Updated nuuc function to correctly identify boolean types @sharafdin

  • Fix: Changed boolean literals from true/false to been/run and removed unused import @sharafdin

  • Reorganized examples: Split implemented features into individual test files @sharafdin

  • Update Makefile test target to use new test runner @Omar-Tood

  • Restructure test runners: Move to tests/runners directory @Omar-Tood

  • Add main test runner script for all unit tests @Omar-Tood

  • Add interpreter unit tests with test runner script @Omar-Tood

  • Add parser unit tests with test runner script @Omar-Tood

  • Add lexer unit tests with test runner script @Omar-Tood

  • added security link in soplang.org @sharafdin

  • changed null to waxba @sharafdin

  • Add Docker support with minimalist image and helper script @sharafdin

  • Update documentation to reference Makefile and fix Makefile targets @sharafdin

  • Add Makefile with development commands @sharafdin

  • Update CONTRIBUTING.md: Remove project structure section and add Code of Conduct link @sharafdin

  • Add pre-commit configuration and update documentation @sharafdin

  • Add Code of Conduct and update README with CoC reference @sharafdin

  • Reorganize C source code with modular structure @sharafdin

  • Restructure codebase with modular organization @sharafdin

  • Update camelCase keywords to snake_case @sharafdin

  • Remove camelCase keyword alternatives from lexer and update grammar formatting @sharafdin

  • Update remaining example files to use consistent snake_case syntax @sharafdin

  • Standardize Soplang keywords to snake_case format @sharafdin

  • Update README with concise, professional format @sharafdin

  • Add development configuration files @sharafdin

  • Standardize naming convention for shell scripts @sharafdin

  • Update script path in compare_all_implementations.sh @sharafdin

  • Update script paths in documentation files @sharafdin

  • Reorganize script files into logical directories @sharafdin

  • Update README with Docker setup instructions @sharafdin

  • Add Docker configuration for development @sharafdin

  • Restructure documentation to docs/ directory @sharafdin

  • Fixed bug in parser where files without trailing newlines caused parse errors @sharafdin

  • Updated keywords.md with correct Soplang keywords to match implementation @sharafdin

  • added js README.md @sharafdin

  • Added Nuitka build system for Windows and Unix platforms @sharafdin

  • Updated soplang_shell.sh with command line flags support @sharafdin

  • added flags support @sharafdin

  • Added interactive Soplang shell with keyboard shortcut support @sharafdin

  • Moved main.py to src directory and created a wrapper script @sharafdin

  • Update ast.c @sharafdin

  • added hello.c @sharafdin

  • added data types @sharafdin

  • Add test documentation, and edge case examples @sharafdin

  • added test for unit testing @sharafdin

  • Add .gitignore file to exclude compiled and temporary files @sharafdin

  • Add and update C source files for improved implementation @sharafdin

  • Add comprehensive performance testing tools and documentation @sharafdin

  • migrating soplang interpreter to c @sharafdin

  • Updated documentation to consistently use soo_celi for return statements @sharafdin

  • Added comprehensive documentation: README, grammar specification, and keywords reference @sharafdin

  • Added support for return statements (sooCeli) in parser and interpreter @sharafdin

  • Standardized loop keywords to snake_case (ku_celi and inta_ay) and added support for logical operators (&&, ||) @sharafdin

  • Fixed escape sequence issue in basic example file @sharafdin

  • Fixed bug in parser to support modulo operator in expressions @sharafdin

  • Updated source files for better code organization @sharafdin

  • Removed unused files and reorganized codebase structure @sharafdin

  • Added modulo (%) operator support @sharafdin

  • Added method call support for lists and objects in interpreter.py @sharafdin

  • Added list and object methods to builtins.py for Soplang @sharafdin

  • Added full support for lists (liis) and objects (shey) in Soplang @sharafdin

  • Added automated test example. @sharafdin

  • Added script to run all Soplang examples @sharafdin

  • Updated main.py to run Soplang example files directly @sharafdin

  • Updated README with comprehensive documentation including static typing @sharafdin

  • Added user input example with akhri() function @sharafdin

  • Added example files showcasing Soplang language features @sharafdin

  • Added test cases for Soplang language features @sharafdin

  • Added interpreter with static typing and runtime type enforcement @sharafdin

  • 📌 Added support for comments (// single-line and /* multi-line */) @sharafdin

  • 📌 Updated AST to support static typing with var_type property @sharafdin

  • 📌 Updated parser.py to support static typing (tiro, qoraal, labadaran, etc.) @sharafdin

  • 📌 Updated main.py with src imports and static typing examples @sharafdin

  • 📌 Updated lexer to support static typing (tiro, qoraal, labadaran, liis, shey) @sharafdin

  • 🐞 Fixed builtins.py to use 'labadaran' instead of 'boole' for boolean type @sharafdin

  • 📌 Added static typing tokens (tiro, qoraal, labadaran, liis, shey) @sharafdin

  • 📌 Added built-in functions with type checking and conversion @sharafdin

  • 📌 Added custom Somali error messages for Soplang @sharafdin

  • Added github templates and security.md @sharafdin

  • Fix file extension: changed 'sp' to 'so' @Adam-Elmi

  • Rename another.sp to another.so @sharafdin

  • rebuild soplang with new syntax @sharafdin

📝 Release Checklist

  • Build Windows binary (soplang-2.0.0-windows.exe)
  • Build Linux binary (soplang-2.0.0-linux.deb)
  • Build macOS binary (soplang-2.0.0-macos.dmg)
  • Upload all binaries as assets
  • Calculate and add SHA256 checksums to the table
  • Verify Docker images were built and pushed successfully
  • Remove this checklist section
  • Publish the release