Releases: tucats/ego
Ego 1.5 "Whole Grain"
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"
Project features
Formally adopted MIT licence.
Language Features
- Runtime close() calls Close method of a type if found.
- Ability to unwrap interface types with x.(type) notation.
- Switch statement with conditional cases.
- Switch statement assigning local value from switch value.
Runtime Features
- Added strconv runtime package.
- Revised reflect package.
- Support exec package on Windows.
- Added string sealing functions to strings package.
- More correct unicode support in strings package.
- Removed blockprint functions from strings package.
- Runtime improvements in db, fmt packages.
Server features
- Support for HTTP/HTTPS automatic redirect in server.
- Addition of @endpoint directive for HTTP services.
- Support for external authentication service for server.
- Support serving video as a server asset.
- WriteHeader function for HTTP services.
- Removed the /code endpoint.
- Use native versions of logging, admin services when Ego versions not found.
- Support for data source names in table and SQL access endpoints.
Commandline Features
- Added STATS and SERVICES loggers.
- Added --project option to run all .ego code in a directory.
- Renamed --debug option to --log which better reflects its purpose.
- 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"
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"
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
First formal release of Ego