Skip to content
This repository was archived by the owner on Oct 4, 2026. It is now read-only.

Releases

YPSH v10.2.2

Choose a tag to compare

@nercone-dev nercone-dev released this 20 Oct 11:04

Fixed an issue with Ctrl+C

Fixed a problem where a KeyboardInterrupt exception was being raised by Python upon Ctrl+C input.


Translated by LLM
This release note was translated by Gemini 2.5 Pro.

YPSH v10.2.1

Choose a tag to compare

@nercone-dev nercone-dev released this 20 Oct 10:18

Fix for the Build Failure Issue

As predicted in the previous release notes, the build failed.
The newly added dependency was too large, resulting in the following issues:

  • Linux Intel/AMD: During the process of PyInstaller creating a large executable, the GitHub Actions runner ran out of disk space.
    • This was indicated by the error: No space left on device.
  • Windows Intel/AMD: After Nuitka converted the Python code to C, the C compiler ran out of memory (heap space) when compiling it.
    • This was indicated by the error: compiler is out of heap space in pass 2.
  • macOS Apple Silicon: When Nuitka attempted to code-sign the built executable along with the numerous included files, the command-line argument length exceeded the OS limit.
    • This was indicated by the error: Argument list too long: '/usr/bin/codesign'. The cause was the large number of files included with the new dependency, PyTorch.

As a workaround in this fix, we’ve decided not to include the new dependency in future prebuilt versions.
However, if you are building it yourself, you can still include the new dependency by specifying it as follows:

python nabs.py -d psutil,pynvml,torch

YPSH v10.2

Choose a tag to compare

@nercone-dev nercone-dev released this 20 Oct 08:29

This release includes new dependencies, which may cause build failures.
If any issues arise, we will address them in a new release as soon as they are identified.
If no issues are found, the release will be officially added to the stable channel.

Comment Format Changes

The previous section-specific comment format took up approximately three lines and took up a lot of space, so we have simplified it.
This change has no effect on the YPSH language itself; it only affects the runtime source code.

Memory Management Function

Memory management functions have been added.
These functions can be accessed via the memory module and imported with import("memory").
The auto_gc and collect_after_toplevel options have been added to the runtime.options category in the configuration file, allowing you to customize their behavior.

Exception Handling

Exception Display Changes
The display added to stdout/stderr when an exception occurs has been changed.
The coloring is set according to the exception level.

Changes to Exception Levels
Until now, there were only four levels: E (Error), W (Warning), I (Info), and D (Debug). Now, we've added a new level: C (Critical).

This level is set when processing cannot continue after the exception occurs.

Note that if you use Python's exception_handler() or a YPSH script's raise() with the check argument set to False, a C level exception will automatically be changed to an E level exception.

Addition of Built-in Functions
You can now change the exception level displayed in a YPSH script.

You can set this with Exception.level.set().

Changes to Language ID (ISO 639) Processing
The way language IDs are handled has been changed.
Specifically, if a language ID such as en-GB is specified and no exception description for the en-GB language ID exists, the closest possible description, such as en or en_US, will be used.
Both - and _ are supported as delimiters for language IDs.

YPSH v10.1

Choose a tag to compare

@nercone-dev nercone-dev released this 19 Oct 12:42
bb8f853

Runtime:

  • When @.print is executed without arguments, it now uses "" as the default value.
  • Very Minor Changes

Setup:

  • The GUI coloring has been changed to a black and white color scheme.

Writed by Nercone, Translated by Google Translate

YPSH v10.0

Choose a tag to compare

@nercone-dev nercone-dev released this 17 Oct 01:10

This v10.0 release represents a significant internal refactoring, focusing exclusively on standardizing and cleaning up the PyYPSH built-in module system. Following the v9.0 update, which modernized the build process (NABS), this release streamlines the runtime environment, leading to a cleaner, more predictable core.

NOTE: This is a major update and contains breaking changes due to module restructuring.


Key Feature: Built-in Module Normalization

The process for enabling built-in modules has been completely standardized and made significantly more flexible:

  • Flexible Naming: All module identifiers are now automatically normalized to be case-insensitive and agnostic to spaces or hyphens.
    • Example: Enabling the "system extra" module can now be done with module_enable("system_extra"), module_enable("System-Extra"), or even module_enable("system extra").
  • Simplified Enablement: The module loading logic is now cleaner and more robust, allowing for easier future expansion.

Module Structure Overhaul (Breaking Changes)

To achieve the new level of standardization, the existing built-in modules have been restructured. Developers should check their scripts for calls referencing the old module names.

Old Module Name(s) New Status / Location Change Type Notes
minimal, default Grouping remains Re-grouping New contents based on the modules below.
ypsh Consolidated Deprecated Functions split into system and system_extra.
standard Consolidated Deprecated Functions split into system and system_extra.
type Renamed Renamed Now called types.
stdmath, conv, exstr, exec, file Consolidated Deprecated Core utility functions moved to system_extra.
import Refactored Improvement The Python import logic is now more deeply integrated into the main import module, deprecating separate python.import concepts.

Core Utility Consolidation

Key built-in functions that were scattered across multiple modules have been centralized:

  • system (Minimal Core): Contains essentials like print, cprint, show, ask, basic truth values (True, False), exception objects (Error, Exception), and exit.
  • system_extra (Extended Utilities): Now hosts general-purpose functions such as min, max, mod, range, count, and the exec function. It also exposes ypsh.def and ypsh.undef, and all runtime metadata (ypsh.version, ypsh.options, etc.).
  • types: Hosts direct access to the built-in type constructors (str, int, list, dict, etc.).

Other Improvements

  • Exception Handling Cleanup: Minor internal cleanup was performed on the exception definition blocks, removing outdated comments.
  • Environment Exposure: The interpreter's internal environment getter functions (ypsh.locals and ypsh.globals) are now correctly exposed via the system_extra module, aiding in runtime debugging.

Writed by AI
These release notes were created by submitting a git-generated diff to Gemini Flash Latest.

YPSH v9.0.4

Choose a tag to compare

@nercone-dev nercone-dev released this 15 Oct 09:46

Fixed bugs
Fixed an issue where release tags were not being set automatically.

YPSH v9.0.3

Choose a tag to compare

@nercone-dev nercone-dev released this 15 Oct 09:27

Fixed bugs
The file name was changed, but the workflow still used the original file name, causing an error.
This has been fixed.

YPSH v9.0.2

Choose a tag to compare

@nercone-dev nercone-dev released this 15 Oct 01:23

Fixed bugs
The file name was changed, but the workflow still used the original file name, causing an error.
This has been fixed.

YPSH v9.0.1

Choose a tag to compare

@nercone-dev nercone-dev released this 15 Oct 01:20

Fixed bugs
An error occurred because the workflow was still using a deleted argument.
This has been fixed.

YPSH v9.0

Choose a tag to compare

@nercone-dev nercone-dev released this 15 Oct 01:16

Backwards compatibility: Some contain breaking changes


Introducing NABS: A New Era for PyYPSH Builds

This release marks a complete overhaul of the automated build system, retiring the old "DGC-AutoBuild" in favor of the new NABS (Nercone Automatic Building System). This ground-up rewrite brings significant improvements in reliability, maintainability, and functionality.

The most exciting new feature is Dual-Build Support. Every release now generates two distinct types of executables for all supported platforms:

  • PyInstaller Builds: The standard, reliable build method focused on maximum compatibility. This is the recommended choice for most users.
  • Nuitka Builds: An alternative build compiled down to C for potential performance improvements. These binaries are distinguished by a -NUI suffix in their filenames.

Enhanced Installer with Build Selection

The cross-platform installer (ypsh-setup.py) has been significantly upgraded to support the new build system:

  • Build Type Choice: The graphical setup wizard now includes a new page allowing you to select between the PyInstaller and Nuitka builds.
  • Improved CLI: The command-line interface has been modernized using argparse, providing a more standard and user-friendly experience with clear flags like --channel, --build, and --dest.
  • New Channel Support: The installer now recognizes the maybe-stable release channel.

Core Interpreter & Configuration Refactor

The interpreter's internal architecture has been modernized for better reliability and introspection:

  • Dynamic Build Configuration: Version and build information is no longer hardcoded. It is now dynamically injected into a YPSH_OPTIONS_DICT at compile time by a new configurator.py script.
  • Richer Runtime Information: This change exposes more detailed build information from within YPSH scripts, including:
    • ypsh.product.name: The product name (e.g., "PyYPSH").
    • ypsh.product.id: A unique product identifier.
    • ypsh.version.type: The release type (e.g., "stable", "beta").
    • ypsh.version.text: The full version string.
  • Streamlined Codebase: To reduce complexity and dependencies, the experimental NextDP file-sharing feature has been removed from the core interpreter.

Other Changes

  • Release Channel Renaming: The stable channel is now officially named maybe-stable to better reflect its release promotion process.
  • CI Overhaul: The GitHub Actions workflows have been completely rewritten to be cleaner, faster, and more focused by removing external notification steps.
  • Dependency Cleanup: Unused Python packages have been removed, resulting in a leaner project.

Full Changelog

v8.1...v9.0b1


About NABS

Automatic builds via NABS V1 will now begin.
Each release will generate both PyInstaller and Nuitka binaries for all 6 target platforms.
Only if all builds are successful will the release be published to each channel.


Writed by AI
These release notes were created by submitting a git-generated diff to Gemini 2.5 Pro.