Browse the documentation

Preview documentation for AEL Beta 0.0.1 — launching soon

Planned targets

A target is what a program written in AEL, the Agent Engineering Language, will run on: an operating system and processor, or a microcontroller board. You will name the target when you check or build a project, with --target (command names may change before launch):

Status

Planned for AEL Beta 0.0.1. AEL is not available yet.

Preview syntax — may change before launch
ael check --target linux-x86_64
ael build --target linux-x86_64 -o build/support --release
ael build --target rp2040-pico -o build/sensors --release --memory-report

The planned list

Planned for Beta 0.0.1:

TargetTarget nameProfile
Linux on x86-64linux-x86_64Host
Linux on ARM64linux-arm64Host
macOS on Apple silicon (ARM64)macos-arm64Host
Windows on x86-64windows-x86_64Host
Static Linux executables and minimal container images, x86-64 and ARM64Built from the two Linux targetsHost
Raspberry Pi Pico (RP2040)rp2040-picoNano
STM32 NUCLEO-G071RBstm32g071-nucleoNano
ESP32-C3 development boardesp32c3-devkitEdge
One more microcontroller boardTo be announcedTo be announced
  • The final list of targets will be confirmed at launch.
  • Target names are preview naming and may change before launch.
  • Targets that are not in this list are not planned for Beta 0.0.1.
  • A board is covered by its exact name. Another board is not covered because its name is similar or it uses a related chip.

Profiles

Every target will have one of three profiles. A profile will say what a target can offer a program, so you know before you build whether your program fits.

ProfileWhereWhat it will offer
HostLinux, macOS and Windows, including single-board computers and serversThe operating system's facilities, an optional heap, a multi-core runtime, networking, model clients and servers.
EdgeLarger microcontroller boards, such as the ESP32-C3An optional heap, storage, networking and TLS, each off until you switch it on.
NanoBare-metal microcontroller boardsNo heap and no operating system: every agent, mailbox, timer and buffer has a capacity fixed when you build.
  • One language will reach from servers down to microcontrollers, and a feature a target cannot support will fail at compile time, not on the device.
  • The smallest profile will need no heap and no operating system.
  • An optional heap, storage, networking and TLS will be available on small networked boards, such as the ESP32-C3, planned for Beta 0.0.1.

The profiles will be what your program can rely on, not brands of hardware. A single-board computer running Linux on ARM64 or x86-64, for example, will be a Host target.

What a target check covers

When you check or build for a target, AEL will check that everything the program uses is available there: a heap on a Nano board, networking on a board that has none, a peripheral the board does not have, or a package limited to other targets. A mismatch will fail the check with a diagnostic that points at your source, before anything is written to a device.

You will be able to limit a dependency in pack.ael to some targets with its targets field; see the Manifest reference.

Where you will develop

You will develop on, and build for, the four operating-system targets above. Installers for Linux, macOS and Windows will come with target management and a health check, and desktop and server programs will need nothing else installed.

Microcontroller boards will be targets only: you will build for them from one of those machines. A board target will need its own support, added with ael target install, and flashing a board will need its maker's flashing tools.

Preview syntax — may change before launch
ael target install rp2040-pico
ael doctor

ael doctor will report the toolchain, the installed targets and anything that is missing, and ael target install describes setting up a target. Which development machines will build for which targets will be confirmed with the final list.