Skip to content

Releases: tucats/ego

Ego 1.5 "Whole Grain"

23 Sep 21:19
Compare
Choose a tag to compare

Ego 1.5 “Whole Grain”

This update has a focus on bug fixies and reliability over new features. But here are some notable changes:

Language

  • Better compliance with Go implicit conversion of constant values.
  • Better compliance with Go function return value typing
  • Add support for if-else-if cascading conditional statements
  • When extensions enabled, support for a type of “type” which contains an Ego type definition.
  • Add @symbols directive to dump symbol table data
  • Add @serizlied directive to dump JSON expression of values.
  • Support package alias names in import statements.

Runtime

  • Add strings package functions like Replace, ReplaceAll, Trim.
  • Add strings.Builder type and associated methods.
  • Add strong package functions for Roman numerals
  • Add tables package functions to read from table objects.
  • Add time package object methods of After, Before, Clock
  • Add fat package Scan function.
  • Move depreciated ioutil package functions to io package.
  • Generate Ego stack trace when panic() called.
  • Fix errors in how functions return a value of type error
  • Fix errors in structure field ordering for output/formatting.
  • Fix errors in symbol table scoping for nested local functions.

Ego command line

  • Shorten server status output unless -v option used.
  • Ego will create lib directory and generate minimum required contents on first run if not already present.
  • Support for creating, examining, and using data source names to read database tables.
  • Add “help” command.
  • Ego can act as a shell processor in Unix/Mac shell scripts (#!/bin/ego)

Server

  • Support for using data source names to securely hold database connection string information (including credentials) to be accessed by name by authorized users.
  • Redact passwords in log messages during server operation.
  • Server can be configured to run service requests in a child process.
  • Better in-memory caching of heavily re-used objects like DSNS, authorization records, and token authentication.
  • Logging updates for tracking service execution more closely.
  • Improved standards compliance for security with HTTPS/HTTP redirects.
  • Server can archive log files that age out to a .zip file

Full Changelog: v1.4...v1.5

Ego 1.4 "Sugar Free"

29 Jul 19:45
Compare
Choose a tag to compare

Project features

Formally adopted MIT licence.

Language Features

  1. Runtime close() calls Close method of a type if found.
  2. Ability to unwrap interface types with x.(type) notation.
  3. Switch statement with conditional cases.
  4. Switch statement assigning local value from switch value.

Runtime Features

  1. Added strconv runtime package.
  2. Revised reflect package.
  3. Support exec package on Windows.
  4. Added string sealing functions to strings package.
  5. More correct unicode support in strings package.
  6. Removed blockprint functions from strings package.
  7. Runtime improvements in db, fmt packages.

Server features

  1. Support for HTTP/HTTPS automatic redirect in server.
  2. Addition of @endpoint directive for HTTP services.
  3. Support for external authentication service for server.
  4. Support serving video as a server asset.
  5. WriteHeader function for HTTP services.
  6. Removed the /code endpoint.
  7. Use native versions of logging, admin services when Ego versions not found.
  8. Support for data source names in table and SQL access endpoints.

Commandline Features

  1. Added STATS and SERVICES loggers.
  2. Added --project option to run all .ego code in a directory.
  3. Renamed --debug option to --log which better reflects its purpose.
  4. Added dsns subcommand group for managing data source names on a server.

Bug Fixes

Fix issues with relaxed type checking.
Fix issues with concurrent access to symbol tables and values.
Fix resource leaks in database handling.
Performance improvements.

Full Changelog: v.14...v1.4

Full Changelog: v1.3...v1.4

Ego 1.3 "Acai Berry"

08 Jan 21:10
Compare
Choose a tag to compare

This release focuses on several things:

  • More complete language compliance with Go
  • Further expansion of the supplied packages.
  • Server support for REST-based SQL operations.
  • Improved security

This release also includes lots of bug fixes as well as faster performance.
RELEASENOTES.md

Version 1.2 "Jamba Juice"

08 Feb 21:42
Compare
Choose a tag to compare

The "Jamba Juice" release adds a lot of functionality to Ego in support of using it as a back-end REST server.

  • Enhanced REST compliance with OpenAPI standards
  • Use of media types to select result formats
  • REST interface to Postgres databases
  • Enhanced caching for servicees
  • Enhanced logging features

Plus, a ton of bug fixes along the way. Note that this distribution is for Mac OS Apple Silicon systems.

Full Changelog: v1.1...v1.2

Version 1.1

24 Feb 19:08
Compare
Choose a tag to compare

First formal release of Ego