Skip to content

Releases: gkjpettet/roo

Version 3.0.2

09 Apr 12:58
Compare
Choose a tag to compare

New Features

  • Added the Nothing.to_number getter (always returns 0)

Installation

The easiest way is to use Homebrew on the Mac or Scoop on Windows.

Downloads

macOS
Windows (64-bit)
Linux (x86 64-bit)
Linux (ARM 32-bit)

Version 3.0.1

05 Apr 14:00
Compare
Choose a tag to compare

Bug Fixes

  • Can now set fields on native modules if the module implements the RooNativeSettable interface.
  • Various fixes to Roo's JSON parsing engine
  • Local variables no longer shadow variables with the same name but a different case in an enclosing scope

New Features

  • Added HTTP.url_decode() and HTTP.url_encode() functions
  • Simplified error handling if you are embedding Roo in an existing Xojo app with the removal of four events from the RooInterpreter class and the addition of a new ErrorOccurred event

Full documentation is available at https://roolang.org.

Installation

The easiest way is to use Homebrew on the Mac or Scoop on Windows.

Downloads

macOS
Windows (64-bit)
Linux (ARM)
Linux (x86 64-bit)

Version 3.0.0

10 Mar 13:47
Compare
Choose a tag to compare

This is major new release. The interpreter has been completely rewritten from scratch. Roo is now entirely written in native Xojo code and requires no third party plugins. The language has not only changed significantly syntactically (indentation is now used instead of curly braces for block scoping, like Python) but many, many bugs have been fixed. Performance has been improved and new features have been added.

Full documentation is available at https://roolang.org.

Installation

The easiest way is to use Homebrew on the Mac or Scoop on Windows.

Downloads

macOS
Windows (64-bit)
Linux (64-bit x86)
Linux (ARM)

Version 2.5.1

25 Sep 16:03
Compare
Choose a tag to compare

Improvements

  • Greatly improved resilience of the parser. It will now correctly report syntax errors without getting stuck in an infinite loop of doom
  • For classes that define a to_text getter to provide a text representation of the object - this is now honoured throughout the language (e.g: when concatenating with other objects)

Installation

The easiest way is to use Homebrew on the Mac or Scoop on Windows.

Downloads

macOS
Windows (64-bit)
Linux (64-bit)
Raspberry Pi

Version 2.5.0

25 Sep 13:02
Compare
Choose a tag to compare

Improvements

  • Semicolons are no longer required! You are free to continue to use them to separate multiple statements on the same line but your code will look prettier without them.
  • Parentheses are now optional around the conditions of if constructs and while loops 🎉. You can obviously use them to make your code easier to read if you wish.
  • Added a new exit keyword to allow breaking out of if constructs early
  • The scanner has been partially rewritten to be faster and more efficient
  • The parser now handles more edge cases and panics less when things go wrong
  • It's now possible to define the text representation used by the standard library print() function for your own classes. Just created a class method called to_text and return the text representation for your object
  • Added the Hash.value(key) method which returns the value of the specified key

Installation

The easiest way is to use Homebrew on the Mac or Scoop on Windows.

Downloads

macOS
Windows (64-bit)
Linux (64-bit)
Raspberry Pi

Version 2.4.1

20 Sep 19:12
Compare
Choose a tag to compare

Improvements

  • Request objects now have a default HTTP method of GET
  • Added the Roo.NetworkingEnabled property which (if False) will disable Roo's ability to access the network and raise a Roo.RuntimeError exception. It defaults to True
  • Added the DateTime.long_month getter
  • Added the DateTime.day_name getter
  • Added the DateTime.meridiem getter
  • Added the DateTime.short_month getter
  • Added the DateTime.time getter
  • Added the DateTime.to_http_header getter
  • Added the DateTime.two_digit_hour getter
  • Added the DateTime.two_digit_minute getter
  • Added the DateTime.two_digit_second getter
  • Added the Text.to_date getter
  • It's now possible to store arbitrary data on an interpreter instance with the Roo.Interpreter.Custom dictionary property

Installation

The easiest way is to use Homebrew on the Mac or Scoop on Windows.

Downloads

macOS
Linux (64-bit)
Windows (64-bit)
Raspberry Pi

Version 2.4.0

12 Sep 13:25
Compare
Choose a tag to compare

New Features

  • HTTP networking support added! This release introduces two new data types (the Request and Response objects) and the HTTP module enabling Roo to now make HTTP requests
  • Added a new JSON module for parsing JSON strings to Roo data structures and for converting Roo Hash objects to JSON strings

Improvements

  • Added Text.to_date getter
  • Added DateTime.day_name getter
  • Added DateTime.long_month getter
  • Added DateTime.short_month getter

Installation

The easiest way is to use Homebrew on the Mac or Scoop on Windows.

Downloads

macOS
Windows (64-bit)
Linux (64-bit)
Raspberry Pi

Version 2.3.1

03 Sep 14:49
Compare
Choose a tag to compare

Bug fixes

  • File.flush now returns Nothing like it should
  • Fixed a crash that could occur in File.append()

Changes

  • Renamed FileUtils.pwd to FileUtils.cwd. Current working directory (cwd) feels more appropriate than pwd (print working directory).

Improvements

  • Added Text.define_utf8 and Text.define_utf8! getters
  • Added FileUtils.cwd_path getter

Installation

The easiest way is to use Homebrew on the Mac or Scoop on Windows.

Downloads

macOS
Windows (64-bit)
Linux (64-bit)
Raspberry Pi

Version 2.3.0

31 Aug 14:49
Compare
Choose a tag to compare

Improvements

  • New DateTime data type. As the name suggests, this adds extensive support for working with dates and times.
  • New FileUtils module. This module provides the following getters and methods for manipulating File objects:
    • FileUtils.copy(source, destination, overwrite)
    • FileUtils.delete(item)
    • FileUtils.mkdir(path)
    • FileUtils.move(source, destination, overwrite)
    • FileUtils.pwd
  • Added many more getters and methods to the File data type

Installation

The easiest way is to use Homebrew on the Mac or Scoop on Windows.

Downloads

macOS
Windows (64-bit)
Raspberry Pi
Linux (64-bit)

Version 2.2.0

24 Aug 11:11
Compare
Choose a tag to compare

Improvements

Require statement

Added a new require statement. This finally adds the capability for Roo to include the contents of other scripts in a running script:

require "path/to/file"; # .roo extension is optional

The provided path can be relative to the script file or an absolute path.

Installation

The easiest way is to use Homebrew on the Mac or Scoop on Windows.

Downloads

macOS
Windows (64-bit)
Raspberry Pi
Linux (64-bit)