Skip to content

Changelog v0.30.9

  • Features

    • optimization of expression is now working 😵‍💫
    • enable emitting aspects without arguments into module
    • handle deoptimization flag
    • reduce size of veinc, ishtar, rune 🙄
    • ctrl+c now shuts down ishtar after killing rune 😫
    • improvements feature of rune test (parallel test, etc) 🤑
    • shutdown and connect method for sockets
  • Bug Fixes

    • fix incorrect usage of realloc
    • added missed STLOC_5, LDLOC_5 🤯
    • fix modulo operation opcode
    • support dump object to file
    • upgrade upstream of spectre.console
    • fix console flickering when using progress in rune and compiler
    • fix string bindings methods
    • handle void, none and undefined in LOCINIT_X opcode
    • linux and x86_x64 mac os now disable for releases delivery 😍

Changelog v0.30.7

  • Features
    • feature: primitive LSP
    • add workload get-tool
    • rework Socket support
    • add string,getSize, string.copyTo
  • Bug Fixes
    • imrovements of Dns.resolve
    • fix missing directives ast tranform
    • add success\failed status of rune run
    • fix compilation in rune run
    • set novid in run and sys commands
    • fix SVA validator
    • fix coloring in project finder

Changelog v0.30.6

  • Bug Fixes
    • fixed incorrect dispose of telemetry handler
    • fixed incorrect sentry dns
    • improvement of display position of token
    • added --display-diagnostic-trace for rune build
    • fixed not escaped path to wll in rune run
    • fixed incorrect fusce binary expression and determination overloading methods of operators
    • added get_top_frame_name native method
    • added print_any
    • added missed string.format binging's
    • fixed crash ishtar when calling method defined in system predefined types
    • added ability of override entry point method
    • added rune test
    • rune new how installing latest std into created project
    • added Assert class into std for define test cases and asserting

Changelog v0.30.5

  • Bug Fixes
    • fix runtime incorrect reader module of type
    • expose partial boot.ini settings to run cmd
    • set 4 as default size threadpool
    • fix write ir output
    • fix failed stop threadpool threads after vm stop
    • redirect error stdout when calling vm in rune cli
    • use libuv thread spawn
    • add bybass root option in install script

Changelog v0.30.4

  • Bug Fixes

    • fix ishtar console output
    • fix progression of installing packages
    • restore telemetry options
  • Bug Fixes

    • fix runtime incorrect reader module of type
    • expose partial boot.ini settings to run cmd
    • set 4 as default size threadpool
    • fix write ir output
    • fix failed stop threadpool threads after vm stop
    • redirect error stdout when calling vm in rune cli
    • use libuv thread spawn
    • add bybass root option in install script

Changelog v0.30.3

  • Bug Fixes
    • fix handle fork process of vein compiler and runtime executer
    • fix failing when install workload with already installed dependency
    • fix locked ishtar process when called it from rune
    • fix duplication of env in install script
    • fix std incorrect bindings

Changelog v0.30

  • Big Features

    • Initial Support Generic types
    • Rune CLI (unified tool for control vein projects, add packages, install workloads and other)
    • Type Aliases
    • BoehmGC
    • LLVM Glue code generator (for FFI and other platform specific code)
    • Workloads (delivery of the compiler and runtime and other packages)
    • nameof, typeof, as, is preprocessors
    • function closure references
    • initial await\async support
    • libuv for async\file\network io
    • threading support
    • New in std: sockets, files, regex and other...
    • python workload (only for windows x64 and arm64)
    • vein runtime workload
    • vein compuler workload
    • llvm workload
    • Socket server
  • Known issues

    • Emit opcode resulted in an invalid buffer size value.
    • Socket fault when connection broken
  • New Features

    • Enhanced AppConfig and IshtarObject structures for better configuration and data manipulation.
    • Added a new IshtarWatchDog struct for improved error handling within the virtual machine context.
    • Enhanced parsing capabilities for alias declarations, allowing optional generic type definitions.
    • Improved class declaration handling, now supporting generics in class names and members.
    • Introduced progress reporting for asynchronous commands in the CLI framework.
    • Added new methods for enhanced string and file handling.
    • New properties and methods for managing generics within type expressions.
    • Implemented command-line interface for project compilation and workload management, including installation, update, and uninstallation commands.
    • Added logging features for compilation events.
    • Introduced a command-line interface for project compilation, allowing users to manage and execute builds effectively.
    • Added structured logging for compilation events, enhancing error tracking and reporting.
    • Implemented a shard registry interface for querying and managing shard packages.
    • Added resource management for font and license files, improving accessibility.
    • Introduced a comprehensive specification for extension types in the Vein Language, enhancing the ability to augment existing types with new functionality.
    • Defined two forms of extension declarations: explicit and implicit, detailing their syntax and usage.
    • Provided guidelines for implementing methods, properties, and events within extensions, improving code maintainability.
    • Introduced advanced thread management functionality, including creating, starting, sleeping, and joining threads.
    • Added job management features, such as starting, completing, canceling, and waiting for job status.
    • Added a method for obtaining empty lists in the parser, enhancing list handling.
    • Introduced new parsers for ethereal function expressions to improve expression handling.
    • Introduced debug console interface for enhanced visibility into application state and outputs.
    • Added shared debug data management with state setting, output queues, and formatting.
    • Added TYPE_NULL to the VeinTypeCode enum.
    • Introduced new opcodes LDFN and CALL_SP for method handling.
    • Added new memory allocation methods AllocRawValue and FreeRawValue in the Ishtar Garbage Collector.
    • Introduced structures rawval_union, VeinRawCode, and rawval for advanced memory management.
    • Consolidated print method in the Out class into a single generic method for increased flexibility.
    • Added new opcodes CALL_SP and LDFN for enhanced operation handling.
    • Introduced methods for improved function class compatibility checks.
    • Added functionality to create and manage function multicast groups.
    • Introduced support for alias declarations, including global flags, alias names, and associated types or methods.
    • Added methods for better handling and parsing of compilation units like comments, directives, aliases, aspects, and classes.
    • Introduced wrapper for libuv, providing bindings for various functions including thread creation and event loop management.
    • Added thread-safe NativeConcurrentDictionary and NativeQueue implementations.
    • Introduced IshtarRawThread, IshtarTask, IshtarThread, IshtarThreading, and TaskScheduler for advanced threading and task management.
    • Introduced LLVM-based Just-In-Time (JIT) compilation for FFI glue code.
    • Enhanced error messages to include the full path of the project file when not found.
    • Introduced support for NO_CONSOLE environment variable to disable console output.
    • Introduced comprehensive ECMA Specifications for the Vein Language, covering Identifier Expressions, Expressions and Blocks, Method Parameter Parsing, Binary Literals, General Literal Expressions, Statement Syntax, String Literals, and Type Alias Declarations.
    • Enhanced parsing capabilities for various literal types, expressions, and statements in the Vein Language.
    • Added parsing rules for new constructs like binary literals, type suffixes, and advanced expressions.
    • Introduced a variety of new classes and structs representing fundamental data types and functionality in the vein/lang namespace, including Quaternion, Boolean, Char, Decimal, Double, Float, Guid, Half, Int16, Int32, Int64, Math, Object, Out, Range, String, StringBuilder, Testable, and Thread.
    • Enhanced threading operations and introduced new ways to interact with the OS.
    • Introduced reflection capabilities with the new Field class for accessing and manipulating field information of objects.
    • Introduced a new option DisableOptimization for compile commands.
    • Introduced support for parsing and handling for loop statements.
    • Added a new class ForStatementSyntax for representing for loops in the syntax tree.
    • Introduced a new opcode CALL_V for abstract and virtual method calls.
    • Enhanced error handling with new validation checks for method execution.
    • Threading Pool
  • Improvements

    • Transitioned VirtualMachine from a class to a struct for better performance.
    • Improved pointer handling and memory management across various classes.
    • Enhanced type safety within expression parsing.
    • Updated constructors and properties for better argument management in invocation expressions.
    • Refactored error handling and logging to use more detailed file information.
    • Enhanced scope management with controlled scope creation.
    • Improved code readability and efficiency in multiple methods.
    • Updated type determination logic for unary expressions.
    • Enhanced equality comparisons and conditional jumps in the virtual machine.
    • Enhanced exception messages in ConvertNotSupportedException by using template strings.
    • Refined type compatibility checks across multiple runtime components to support generic types.
    • Simplified method and field type handling by switching to a unified VeinComplexType.
    • Enhanced compatibility checks with additional parameters and improved argument handling.
    • Improved argument validation and exception handling logic in virtual machine methods.
    • Added new boolean property DisableValidationInvocationArgs for flexible validation control.
    • Enhanced debugging in thread execution methods.
    • Added thread and job equality comparison methods for better management.
    • Added new opcode mappings and updated existing ones for improved operation handling.
    • Modified thread and job creation methods to include name parameters for better identification.
    • Updated method signatures for improved parameter handling and performance.
    • Enhanced debug output and logging throughout various components for better traceability.
    • Added project references and configurations to support new debugging features.
    • Removed the global:: prefix from various namespace references across multiple files to simplify namespace handling and improve code readability.
    • Improved exception handling with detailed logging.
    • Enhanced parsing logic for property, method, and constructor declarations.
    • Refined and reorganized code for better readability and maintainability.
    • Updated parsing rules for float, integer, boolean, and null literals.
    • Improved parsing logic for control flow statements such as if, for, foreach, while, return, fail, and delete.
    • Improved IfStatementSyntax to support nullable ElseStatement.
    • Enhanced LocalVariableDeclaration to implement IAdvancedPositionAware.
    • Added Async flag to method options, expanding method flag capabilities.
    • Added multiple new methods and structs for thread and memory management in garbage collection.
  • Documentation

    • Updated the required version of dotnet to 8.0 for building on both Windows and Linux.
    • Added libgc-dev as a required package for building on Linux.
    • Enhanced comments and documentation within the code for better clarity and understanding of new features and changes.
    • Restructured content layout in the README.
    • Aligned images and links for better readability.
    • Added a new section with website links.
    • Modified the introductory text about the Vein programming language.
    • Updated method and property signatures across various classes for clarity and consistency.
    • Enhanced comments and descriptions for better clarity in opcode definitions.
    • Updated documentation to reflect new features and usage instructions for the CLI commands and type parsing.
    • Added licenses.txt for various open-source licenses.
    • Included a detailed launchSettings.json for CLI execution profiles.
  • Bug Fixes

    • Enhanced robustness by adding null checks in memory management routines.
    • Improved error handling in various parsing methods to prevent runtime exceptions.
    • Streamlined initialization processes to improve clarity and functionality.
    • Updated test execution paths for better compatibility.
    • Corrected handling of post-increment assignments in expressions.
    • Adjusted OutputEncoding for Windows to ensure correct display of characters.
    • Fixed position handling in various syntax elements to ensure accurate parsing and error reporting.
    • Enhanced error logging for conflicts in declaration generic types.
    • Addressed null handling in UnBoxing method to prevent runtime errors.
    • Adjusted string construction in several methods to ensure correct namespace resolution without the global:: prefix.
    • Improved exception handling and user interaction in virtual machine halt and debug methods.
    • Corrected parsing logic for array initializers and variable initializers.
    • Improved asynchronous handling of stream disposal in the VerifySign method.
    • Fixed method signature inconsistencies and improved error detection/handling.
    • Ensured app.vein content is only written if DryRun is false in NewCommand.
    • Improved variable access handling in various scope-related methods.
    • Removed outdated and commented-out methods to improve code clarity and maintenance.
    • Improved type handling and validation for generic types in field generation.
    • Improved robustness with fast-fail assertions to prevent executing abstract methods.
    • Updated method flag assignments to accurately reflect abstract methods.
    • Fix typo in converting method flags from ast, (virtual -> virtual, abstract -> abstract)
  • Refactor

    • Streamlined class definitions and constructor initializations for clarity and maintainability.
    • Changed data structures to enhance type safety and simplify interactions.
    • Replaced hardcoded method names with constants for better maintainability.
    • Streamlined compatibility checking methods for improved performance.
    • Updated syntax classes to include positioning methods.
    • Reformatted initialization of properties and method signatures for clarity.
    • Updated various method signatures to use pointers for CallFrame parameters across multiple files.
    • Changed IshtarTrace from a class to a struct and removed its constructor.
    • Refactored CallFrame creation and exception handling in Program.cs.
    • Integrated external link functionality into the AsNative method for cleaner code.
    • Replaced print statements with a centralized logging method for better maintainability.
  • Chores

    • Added new project configuration for .NET 8.0, including necessary package references.
    • Removed outdated package references and added new project references to streamline dependencies.
    • Restructured project dependencies to enhance build efficiency.
    • Created configuration profiles for running the CLI application.
    • Modified debugging methods to be conditional on debug builds.
    • Updated methods to replace console output with debug trace printing.
    • Updated import statements and namespace references in scripts and metadata files to align with the new naming conventions.
    • Updated method signatures and logic for better code clarity and maintenance.
    • Incremented metadata version from 18 to 26.
    • Updated method signatures and internal logic to handle complex and generic types more effectively.
    • Optimized field and method definition processes to streamline the runtime's reflection capabilities.
    • Updated namespace declarations and method signatures for consistency.
    • Streamlined array initialization syntax and improved code organization.
    • Improved readability and maintainability of various methods and assignments.
    • Updated label definitions in code generation for better clarity.
    • Updated command line arguments in launchSettings.json.
    • Added debug print statements and improved thread handling in TaskScheduler.
    • Updated project files and solution configurations to include new projects and adjust project types.
    • Added a project reference to ishtar.vm.libuv.csproj.
    • Tests
    • Added ForFeatureTest to validate the parsing of for statement syntax.
    • Introduced GenericDocumentFeature tests for various struct definitions and methods, including Fibonacci calculation.
    • Added tests for while statement parsing.
    • Added tests for fault handling functionality.
    • Added a new method in unit tests to create and manipulate native queues, ensuring robustness and correctness of the new queue functionality.
    • Added new runtime identifiers for cross-platform support.
    • Updated user dictionary with new terms for better code documentation and readability.
    • Updated build configuration to include libgc-dev in the list of installed packages.