Skip to content
Lee Yi edited this page Nov 21, 2022 · 42 revisions

The Source Academy Module System

Welcome to the Source Modules wiki. This wiki serves to contain long-form informative content related to the Source Modules system and its modules. Refer to the sidebar for more information.

Try out Source Academy here.

The module system imitates ESM Javascript, allowing the use of import statements to import external code into Source programs:

import { draw_connected } from 'curve';

Refer to the development guide for information on how to create modules.

Terminology

These are the 3 main terms the project will be using to refer to the individual components of the Source Modules system. Please follow the set of definitions below to avoid any inconsistencies.

Term Description
Module A set of one bundle and zero or more tabs.
Bundle The suite of functions that are provided by the module.
Tab A user interface used by the module.

List of Source Modules

Sample Modules

Module Tabs Summary
repeat Repeat The repeat module allows Source programs to repeat function applications.

Active Modules

Module Tabs Summary
binary_tree none The binary_tree module provide functions for creating and modifying binary trees.
curves Curves Provides functions for drawing curves.
pix_n_flix Pixnflix Allow Source programs to process still images and videos.
copy_gc CopyGc Visualise Source implementation of stop and copy garbage collection.
mark_sweep MarkSweep Visualise Source implementation of mark and sweep garbage collection.

Inactive Modules

Module Tabs Summary
rpc Rpc Allow a Source program to invoke a function that is defined in another address space.

For a full list of available source academy modules and their documentation, refer to this website.

Clone this wiki locally