Thanks to visit codestin.com
Credit goes to github.com

Skip to content

andrqxa/A2oberon

Repository files navigation

Active Object System (AOS aka A2)

History

The Active Object System (AOS), also known as A2, is a programming language and runtime system designed for concurrent and distributed computing. It was developed at ETH Zurich and has been used in various research projects and educational settings. Historically, it was holded in the SVN repository at https://svn-dept.inf.ethz.ch/svn/lecturers/a2/trunk, but since December 9, 2022, it has been migrated to a GitLab repository.

Active Object System (AOS aka A2) SVN repository (before 9.12.2022)

Unregistered users can download the A2 system from the repository located at https://svn-dept.inf.ethz.ch/svn/lecturers/a2/trunk using svn (read only access as user "infsvn.anonymous" using password "anonymous")

To checkout the trunk, use

svn checkout --username infsvn.anonymous --password anonymous https://svn-dept.inf.ethz.ch/svn/lecturers/a2/trunk aos

Active Object System (AOS aka A2) git repository (from 9.12.2022)

To run A2 on your Windows or Linux system, please clone this repository and refer to the Task-based Build System of the README.

Note that, to keep the repository size manageable, we use GitLab's Large File Storage (LFS) to store large files outside your local Git repository.

If you cannot or prefer not to install Git LFS, you need to manually download the corresponding ZIP files from the GitLab project page. Without LFS, Git will only download placeholder files. You can identify this by their size: if the ZIP files in the root directory of the project are only a few bytes in size, LFS is not installed.

Most of the ZIP files requiring LFS are located in the data directory.

Please let me know if you need developer access to the repository, encounter any missing files, or would like assistance with the setup.

Do not use a directory name that contains a dash (-). It is recommended to name the folder A2oberon


Working with Git LFS

To properly clone the repository and download the required large files:

sudo apt install git-lfs
git lfs install
git clone https://gitlab.inf.ethz.ch/felixf/oberon.git A2oberon
cd A2oberon
git lfs pull

Build Server

The previously existing build-server is being replaced by the CI/CD pipeline in this gitlab. Currently, the pipeline builds the binaries for each commit. More tests will follow.


Task-based Build System

This project uses Taskfile.dev as its cross-platform task runner. It provides a modern alternative to Makefiles with cleaner syntax and modularity.

Installation of task

Linux/macOS:

sudo sh -c "$(curl --location https://taskfile.dev/install.sh)" -- -d -b /usr/local/bin

Windows (using Scoop):

scoop install go-task

Or download precompiled binary from: https://github.com/go-task/task/releases


How to Use

Most commonly used command:

task

This will run the default task, which builds all supported platforms.

You can list all available tasks:

task --list

To execute a specific task:

task <task-name>

Example:

task oberon

Key Tasks Overview

Task Description
oberon Build and replace host compiler (for {{.HOST}} platform)
modules Generate list of .Mod files as environment variable
compile-all-modules Compile all modules using compile-module task
build-platform Build the full compiler binary for a given platform
platforms Build compiler for all supported platforms
clean Remove all build artifacts
clean-temporary-files Clean intermediate build files
set-platform-env Prepare environment variables for current build target

Testing

To run test modules:

task test

Cleaning Up

To clean up all build artifacts:

task clean

To remove only temporary files:

task clean-temporary-files

About

This is the fork of the original Oberon A2 repository from https://gitlab.inf.ethz.ch/felixf/oberon.git

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •