Skip to content

Releases: ShellLite/ShellLite

ShellLite v0.6.0 - Native Compilation & Language Server

23 Apr 11:54

Choose a tag to compare

ShellLite v0.6.0

ShellLite v0.6.0 is here! This release brings massive performance gains, professional IDE support via LSP, and expanded platform compatibility.

Highlights

  • LSP Server Implementation: Language Server Protocol (LSP) support for IDEs (VS Code, etc.), enabling professional features like "Go to Definition" and real time linting.
  • Optional Static Typing: Declare types for better performance and safety (e.g., x as int = 5).
  • An update on the cli tool

Improvements & Fixes

  • Cross Platform Support: Improved compatibility for Linux and macOS.
  • Global Installer: Updated shl install command for easier system PATH setup on Windows and Unix.
  • Optimized REPL: Faster startup and better hint system for interactive coding.

Installation

pip install shell-lite

v0.5 LLVM performance Update

26 Jan 05:14

Choose a tag to compare

I am proud to announce the release of ShellLite v0.05, a major milestone in our journey towards a high-performance, English-like programming language.

Key Feature: LLVM Backend Integration

The primary focus of this release is the integration of a new high-performance LLVM backend.

  • True Compilation: The shl compile command now directly transpiles ShellLite code to LLVM IR (.ll).
  • Native Performance: By compiling to machine code via Clang, scripts bypass the Python interpreter overhead entirely.
  • Simplified Workflow: No additional flags are required. Simply run shl compile <script.shl> to generate the Intermediate Representation.

Usage Example

# 1. Compile your script to LLVM IR
shl compile benchmark.shl

# 2. Output confirmation
# [SUCCESS] Generated LLVM IR: benchmark.ll

# 3. Build executable with Clang
clang benchmark.ll -o benchmark.exe

# 4. Run native binary
./benchmark.exe

Made by Shrey Naithani

v0.04.6: Critical Fixes

13 Jan 18:30

Choose a tag to compare

This release addresses critical issues found in the v0.04.x deployment and solidifies the "Bridge" and "Canvas" features.

Bug Fixes

  • Critical Crash Fix: Resolved "ModuleNotFoundError: No module named shell_lite.interpreter_final" which prevented the CLI from starting.
  • Parser Upgrade: Fixed "Unexpected token BUTTON" and other UI parsing errors. The parser now correctly whitelists and handles HTML-style attributes like ONCLICK, REL, CHARSET, and CONTENT.
  • Website Compatibility: Verified full compatibility with the ShellLite Website codebase.

Features

  • The Bridge: Native Python interoperability remains fully intact.
  • The Canvas: UI input tags now correctly support placeholder and value attributes.

Installation

pip install shell-lite==0.04.6
# or for isolated environments:
pipx install shell-lite==0.04.6 --force

v0.04- Project Polaris: The Powerhouse Update

05 Jan 14:54

Choose a tag to compare

Project Polaris: ShellLite Reimagined

This is the biggest update in ShellLite's history. We've transitioned from a scripting tool to a complete language platform with Universal Python Interop, Native UI, and a Package Manager.

The Bridge (Python Interop)

Use the entire Python ecosystem directly within ShellLite.

use python "math"
use python "json" as j
say math.pi                 # 3.14159...
data = j.loads("[1, 2, 3]") # Pure Python functionality

The Canvas (Declarative UI)

Build native desktop applications with zero boilerplate.

app "My Polaris App" size 400 300:
    column:
        heading "It works!"
        button "Click Me" do:
            alert("Hello from ShellLite!")

The Universe (Package Manager)

Manage dependencies effortlessly.

shl init: Create a new shell-lite.toml project.
shl install: Install dependencies automatically.
shl install user/repo: Add packages from GitHub.

Other Improvements

Improved REPL: Syntax highlighting and history (via prompt_toolkit).

Enhanced Installer: Robust global path setup.

Better Error Handling: "Did you mean?" suggestions for typos.

Code like you think.

v0.03.3 The "File System Mastery"

27 Dec 16:48

Choose a tag to compare

New Features

1. File System Mastery

You can now read, write, and append to files using simple English. No complex file handles or context managers needed.

Write to a file

write "System Log Entry: Start" to file "system.log"

Append to a file

append "\nError: Connection failed" to file "system.log"

Read a file

content = read file "system.log"
say content

2. Natural Logic & Comparisons

Code should read like a sentence. We added new comparison operators to make logic flows smoother.

score = 85
if score is at least 80
    say "Distinction"
if score is less than 50
    say "Fail"

3. The Files Module (Internal)

Added shell_lite.src.runtime enhancements to handle file encoding and safe IO operations.

Fixes & Improvements

  • Installer Fix: shl install now correctly detects the script location.
  • REPL Improvements: Better error messages for syntax errors during interactive sessions.

v0.03.2 The Web Development Fix

22 Dec 06:31

Choose a tag to compare

What's New in v0.03.2

This update focuses on making Web Development and List Management feel like a natural conversation.

English-Like Web DSL

  • Natural Routing: when someone visits "/dashboard" or when someone submits to "/add".
  • Declarative Pages: Use define page Header and define component TaskList using tasks for clean UI structure.
  • Simplified Server: Just say start server on port 8080.
  • Native Tags: Use heading, paragraph, and image instead of raw HTML calls.

Smart Global Installer

  • One-Click PATH Setup: Running shl.exe now automatically offers to install itself globally.
  • shl Command: Access ShellLite from any terminal folder instantly.

English Collections

  • Initialize lists naturally: tasks is a list.
  • Initialize dictionaries: user is a dictionary.
  • Natural count: show count of items or how many items.

REPL Enhancements

  • Multiline Support: Use \ at the end of a line to continue your code on the next line.
  • Smart Hints: Friendly help when you're already inside the ShellLite environment.

Bug Fixes

  • Fixed path resolution issues in bundled executables.
  • Improved error reporting for natural language constructs.

v0.03 - Utilities & Web and v0.03.1 Desktop Automation

22 Dec 03:30

Choose a tag to compare

Advanced Features (v0.03) - Utilities & Web

Colored Output

Enhance your terminal output with natural language styling.
Supported colors: red, green, blue, yellow, cyan, magenta, bold.

say in red "Error!"
say bold green "Success!"

Progress Bars

Automatically visualize loops with a progress bar.

show progress for i in range 1 100
    wait 0.1 # Simulate work

Data Conversion

Convert objects to JSON strings easily.

data = { name: "ShellLite", id: 1 }
json = convert data to json

Task Scheduling

Schedule code execution using natural timing phrasing.

# Run after a delay
in 10 seconds
    say "Time is up!"

# Run periodically
every 5 minutes
    say "Heartbeat..."

Simple Web Server

Create a basic web server with route handlers.

on request to "/hello"
    give "Hello World"

listen on port 8080


Desktop Automation (v0.03.1)

ShellLite now supports powerful desktop automation and data handling.

Date & Time

Natural date handling for scheduling.

deadline = date "next friday"
if today is after deadline
    say "Late!"

File Operations

Download files and manage archives.

download "https://example.com/data.zip"
extract "data.zip" to "data_folder"
compress folder "backup" to "backup.zip"

CSV Handling

One-line CSV reading and writing.

users = load csv "users.csv"
say users[0]["name"]

save users to csv "backup_users.csv"

System Automation

Control your mouse, keyboard, and clipboard.
(Requires keyboard, mouse, pyperclip, plyer packages)

copy "Hello" to clipboard
text = paste from clipboard

type "Hello World"
press "enter"
click at 100, 200
notify "Task Done" "Script finished successfully."

ShellLite v0.02.1: Code that speaks your language

21 Dec 08:08
ef90ea0

Choose a tag to compare

This update focuses on making ShellLite even more human-readable by introducing "Natural Syntax" features. You can now write logic that reads almost exactly like an English sentence.

New Features

  1. Natural Comparisons: Say exactly what you mean.
    • if score is at least 100 (instead of >=)
    • if count is less than 5 (instead of <)
    • if name is exactly "Admin" (instead of ==)
  2. Descriptive Collections: Define data naturally.
    • fruits = a list of "apple", "banana"
    • ids = a unique set of 1, 2, 3
  3. Readable Waits: Pause execution with clarity.
    • wait for 5 seconds (instead of just wait 5)
  4. Filler Words: The engine now intelligently ignores common filler words like the, allowing for more fluid phrasing.
    • if the user is active works just like if user is active.

Maintenance

  • Cleaned up repository structure (removed temporary folders).
  • Updated documentation to reflect Natural Syntax options.
    Made by Shrey Naithani

Introducing ShellLite v0.02: Advanced Automation Features

21 Dec 07:45
ef90ea0

Choose a tag to compare

This release introduces 7 major new features to the ShellLite language, expanding its capabilities for modern scripting and automation.

What's New?

  1. Native GUI Support: Built-in support for alert, prompt, and confirm dialogs (using tkinter).
  2. Regular Expression Literals: Search and validate text with first-class Regex support: email matches /^[a-z]+@/.
  3. File System Watcher: React to file changes in real-time with the on file_change statement.
  4. Async / Await: Run non-blocking background tasks with spawn and await.
  5. Sets Data Structure: Native support for collections of unique items.
  6. Runtime Type Hints: Optional type safety for function arguments: to add a:int b:int.
  7. Improved String Interpolation: Full expression support inside curly braces: "Hello {user.name}, the result is {5 + 5}".

Improvements

  • Documentation updated with a new "Advanced Features" section.
  • Optimized Lexer for regex disambiguation.
  • Enhanced Interpreter for thread-safe background execution.
    Made by Shrey Naithani