1
0
mirror of synced 2026-03-23 09:31:09 +00:00

Compare commits

..

1 Commits

619 changed files with 11197 additions and 11633 deletions

View File

@@ -1,68 +0,0 @@
name: Report an issue with the "Medley Interlisp for the Newcomer" primer
description: Use this template to report issues or make suggestions.
title: "[Primer] <short title here>"
labels:
- primer
- documentation
body:
- type: dropdown
id: problemType
attributes:
label: "What type of issue are you reporting?"
options:
- Suggested improvement
- Incorrect explanation / code sample
- Confusing explanation
- Outdated information
- Broken link
- Typo / Grammar
validations:
required: true
- type: dropdown
id: location
attributes:
label: "Section of the primer where the issue occurs"
options:
- Introduction
- Medley online and Medley Local
- Understanding and Navigating the Interface
- Understanding Lisp Syntax
- Atoms, Functions and Lists
- Variable Bindings and Scope
- Iterators and Conditionals
- The File Browser
- Debugging
- Editing functions with SEdit
- Build Your First Interactive Program
- Saving Your Work
- TEdit, The WYSIWYG Editor
- Drawing and Displaystreams
- Making a Graph with Grapher
- Additional Resources
- General Feedback (not specific to a section)
validations:
required: true
- type: textarea
id: issueLocationDetails
attributes:
label: "Please provide more details about the location of the issue"
description: "For example, the specific page title, section heading, or url."
validations:
required: false
- type: textarea
id: issueDescription
attributes:
label: "Description of the issue"
description: "Please provide a detailed description of the issue you encountered."
validations:
required: true
- type: textarea
id: suggestedFix
attributes:
label: "Suggested fix or improvement"
description: "If you have a suggestion for how to fix or improve the issue, please provide it here."
validations:
required: false
- type: markdown
attributes:
value: "## Thank you for helping us improve the **Medley Interlisp for the Newcomer** primer!"

View File

@@ -1,6 +1,6 @@
name: New "What People Are Saying" entry name: "New entry for **What People Are Saying**"
description: 'Suggest a new entry for the "What People Are Saying" page' description: "Suggest a new entry for the **What People are Saying** page"
title: "What People Are Saying suggestion" title: "What People are Saying suggestion"
body: body:
- type: dropdown - type: dropdown
id: contentType id: contentType
@@ -24,7 +24,7 @@ body:
id: additionalInformation id: additionalInformation
attributes: attributes:
label: Additional information label: Additional information
description: "Use this space to supply any additional information on the suggested item." description: "Use this space to supply any addiitonal information on the suggested item."
validations: validations:
required: false required: false
- type: markdown - type: markdown

View File

@@ -21,18 +21,18 @@ name: 'Build/Push Docker Image'
on: on:
workflow_dispatch: workflow_dispatch:
inputs: inputs:
github_release_tag:
description: "Tag of Github Release to be used for this Medley Docker image"
type: string
default: "Latest"
draft: draft:
description: "Mark this as a draft release" description: "Mark this as a draft release"
type: boolean type: choice
default: false options:
- 'false'
- 'true'
force: force:
description: "Force build even if build already successfully completed for this commit" description: "Force build even if build already successfully completed for this commit"
type: boolean type: choice
default: false options:
- 'false'
- 'true'
workflow_call: workflow_call:
outputs: outputs:
@@ -40,21 +40,16 @@ on:
description: "'True' if medley docker build completed successully" description: "'True' if medley docker build completed successully"
value: ${{ jobs.complete.outputs.build_successful }} value: ${{ jobs.complete.outputs.build_successful }}
inputs: inputs:
github_release_tag:
description: "Tag of Github Release to be used for this Medley Docker image"
required: false
type: string
default: "Latest"
draft: draft:
description: "Mark this as a draft release" description: "Mark this as a draft release"
required: false required: false
type: boolean type: string
default: false default: 'false'
force: force:
description: "Force build even if build already successfully completed for this commit" description: "Force build even if build already successfully completed for this commit"
required: false required: false
type: boolean type: string
default: false default: 'false'
secrets: secrets:
DOCKER_USERNAME: DOCKER_USERNAME:
required: true required: true
@@ -82,7 +77,7 @@ jobs:
steps: steps:
# Checkout the actions for this repo owner # Checkout the actions for this repo owner
- name: Checkout Actions - name: Checkout Actions
uses: actions/checkout@v6 uses: actions/checkout@v4
with: with:
repository: ${{ github.repository_owner }}/.github repository: ${{ github.repository_owner }}/.github
path: ./Actions_${{ github.sha }} path: ./Actions_${{ github.sha }}
@@ -109,27 +104,25 @@ jobs:
needs: [sentry] needs: [sentry]
if: | if: |
needs.sentry.outputs.release_not_built == 'true' needs.sentry.outputs.release_not_built == 'true'
|| inputs.force == true || inputs.force == 'true'
steps: steps:
# Checkout latest commit # Checkout latest commit
- name: Checkout Medley - name: Checkout Medley
uses: actions/checkout@v6 uses: actions/checkout@v4
# Find named or latest release # Find latest release (draft or normal)
# and download its assets # and download its assets
- name: Download linux debs from named or latest release - name: Download linux debs from latest (draft) release
run: | run: |
tag="" tag=""
if [ "${{ inputs.github_release_tag }}" = "Latest" ]; if [ "${{ inputs.draft }}" = "true" ];
then
tag=$(gh release list | grep Draft | head -n 1 | awk '{ print $3 }')
fi
if [ -z "${tag}" ];
then then
tag=$(gh release list | grep Latest | head -n 1 | awk '{ print $3 }') tag=$(gh release list | grep Latest | head -n 1 | awk '{ print $3 }')
else
tag=$(echo "${{ inputs.github_release_tag }}" | sed 's/[[:space:]]//g')
set +e
gh release view ${tag} --repo ${{ github.repository_owner }}/medley
if [ $? -ne 0 ]; then echo "!!!!!!! Error: Cannot find Medley release ${tag} on github Medley repo. Exiting."; exit 1; fi
set -e
fi fi
mkdir -p release_debs mkdir -p release_debs
gh release download ${tag} -D release_debs -p '*-linux-*.deb' gh release download ${tag} -D release_debs -p '*-linux-*.deb'
@@ -137,7 +130,7 @@ jobs:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# Get Maiko and Medley release information from name of deb files # Get Maiko and Medley release information from name of deb files
# just downloaded from the Medley github release # just downloaded from the Medley latest release
- name: Get info about Miako and Medley releases - name: Get info about Miako and Medley releases
id: release_info id: release_info
run: | run: |
@@ -149,7 +142,7 @@ jobs:
echo "MEDLEY_RELEASE=${medley_release}" >> ${GITHUB_ENV} echo "MEDLEY_RELEASE=${medley_release}" >> ${GITHUB_ENV}
echo "MAIKO_RELEASE=${maiko_release}" >> ${GITHUB_ENV} echo "MAIKO_RELEASE=${maiko_release}" >> ${GITHUB_ENV}
# re gex="^[^0-9]*\([^_]*\)_\([^-]*-[^-]*\)-\([^-]*\)-\([^.]*\).*\$" # regex="^[^0-9]*\([^_]*\)_\([^-]*-[^-]*\)-\([^-]*\)-\([^.]*\).*\$"
# Set repo env variables # Set repo env variables
- name: Set repo/docker env variables - name: Set repo/docker env variables
@@ -164,7 +157,7 @@ jobs:
platforms="linux/amd64" platforms="linux/amd64"
#,linux/arm64 #,linux/arm64
else else
docker_tags="${docker_image}:draft,${docker_image}:${MEDLEY_RELEASE#*-}_${MAIKO_RELEASE#*-}" docker_tags="${docker_image}:draft"
platforms="linux/amd64" platforms="linux/amd64"
fi fi
echo "REPO_NAME=${repo_name}" >> ${GITHUB_ENV} echo "REPO_NAME=${repo_name}" >> ${GITHUB_ENV}
@@ -177,7 +170,7 @@ jobs:
# Setup the Docker Machine Emulation environment. # Setup the Docker Machine Emulation environment.
- name: Set up QEMU - name: Set up QEMU
uses: docker/setup-qemu-action@v4 uses: docker/setup-qemu-action@v3
with: with:
platforms: linux/amd64 platforms: linux/amd64
# ,linux/arm64,linux/arm/v7 # ,linux/arm64,linux/arm/v7
@@ -185,11 +178,11 @@ jobs:
# Setup the Docker Buildx funtion # Setup the Docker Buildx funtion
- name: Set up Docker Buildx - name: Set up Docker Buildx
id: buildx id: buildx
uses: docker/setup-buildx-action@v4 uses: docker/setup-buildx-action@v3
# Login into DockerHub - required to store the created image # Login into DockerHub - required to store the created image
- name: Login to DockerHub - name: Login to DockerHub
uses: docker/login-action@v4 uses: docker/login-action@v3
with: with:
username: ${{ secrets.DOCKER_USERNAME }} username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }} password: ${{ secrets.DOCKER_PASSWORD }}
@@ -198,7 +191,7 @@ jobs:
# checked out and the release tars just downloaded. # checked out and the release tars just downloaded.
# Push the result to Docker Hub # Push the result to Docker Hub
- name: Build Docker Image for Push to Docker Hub - name: Build Docker Image for Push to Docker Hub
uses: docker/build-push-action@v7 uses: docker/build-push-action@v5
with: with:
builder: ${{ steps.buildx.outputs.name }} builder: ${{ steps.buildx.outputs.name }}
build-args: | build-args: |
@@ -230,7 +223,7 @@ jobs:
steps: steps:
# Checkout the actions for this repo owner # Checkout the actions for this repo owner
- name: Checkout Actions - name: Checkout Actions
uses: actions/checkout@v6 uses: actions/checkout@v4
with: with:
repository: ${{ github.repository_owner }}/.github repository: ${{ github.repository_owner }}/.github
path: ./Actions_${{ github.sha }} path: ./Actions_${{ github.sha }}

View File

@@ -20,43 +20,35 @@ name: Build/Push Medley Release
on: on:
workflow_dispatch: workflow_dispatch:
inputs: inputs:
maiko_release:
description: "What maiko release to use"
type: string
default: 'Latest'
draft: draft:
description: "Mark this as a draft release" description: "Mark this as a draft release"
type: boolean type: choice
default: false options:
- 'false'
- 'true'
force: force:
description: "Force build even if build already successfully completed for this commit" description: "Force build even if build already successfully completed for this commit"
type: boolean type: choice
default: false options:
- 'false'
- 'true'
workflow_call: workflow_call:
outputs: outputs:
successful: successful:
description: "'True' if medley build completed successully" description: "'True' if medley build completed successully"
value: ${{ jobs.complete.outputs.build_successful }} value: ${{ jobs.complete.outputs.build_successful }}
github_release_tag:
description: "Github Release tag for release created in this run"
value: ${{ jobs.loadup.outputs.github_release_tag }}
inputs: inputs:
maiko_release:
description: "What maiko release to use"
required: false
type: string
default: 'Latest'
draft: draft:
description: "Mark this as a draft release" description: "Mark this as a draft release"
required: false required: false
type: boolean type: string
default: false default: 'false'
force: force:
description: "Force build even if build already successfully completed for this commit" description: "Force build even if build already successfully completed for this commit"
required: false required: false
type: boolean type: string
default: false default: 'false'
secrets: secrets:
OIO_SSH_KEY: OIO_SSH_KEY:
required: true required: true
@@ -81,7 +73,7 @@ jobs:
steps: steps:
# Checkout the actions for this repo owner # Checkout the actions for this repo owner
- name: Checkout Actions - name: Checkout Actions
uses: actions/checkout@v6 uses: actions/checkout@v4
with: with:
repository: ${{ github.repository_owner }}/.github repository: ${{ github.repository_owner }}/.github
path: ./Actions_${{ github.sha }} path: ./Actions_${{ github.sha }}
@@ -108,7 +100,6 @@ jobs:
outputs: outputs:
combined_release_tag: ${{ steps.job_outputs.outputs.COMBINED_RELEASE_TAG }} combined_release_tag: ${{ steps.job_outputs.outputs.COMBINED_RELEASE_TAG }}
github_release_tag: ${{ steps.job_outputs.outputs.GITHUB_RELEASE_TAG }}
medley_release_tag: ${{ steps.job_outputs.outputs.MEDLEY_RELEASE_TAG }} medley_release_tag: ${{ steps.job_outputs.outputs.MEDLEY_RELEASE_TAG }}
medley_short_release_tag: ${{ steps.job_outputs.outputs.MEDLEY_SHORT_RELEASE_TAG }} medley_short_release_tag: ${{ steps.job_outputs.outputs.MEDLEY_SHORT_RELEASE_TAG }}
debs_filename_base: ${{ steps.debs.outputs.DEBS_FILENAME_BASE }} debs_filename_base: ${{ steps.debs.outputs.DEBS_FILENAME_BASE }}
@@ -119,12 +110,12 @@ jobs:
needs: [sentry] needs: [sentry]
if: | if: |
needs.sentry.outputs.release_not_built == 'true' needs.sentry.outputs.release_not_built == 'true'
|| inputs.force == true || inputs.force == 'true'
steps: steps:
# Checkout the actions for this repo owner # Checkout the actions for this repo owner
- name: Checkout Actions - name: Checkout Actions
uses: actions/checkout@v6 uses: actions/checkout@v4
with: with:
repository: ${{ github.repository_owner }}/.github repository: ${{ github.repository_owner }}/.github
path: ./Actions_${{ github.sha }} path: ./Actions_${{ github.sha }}
@@ -132,33 +123,35 @@ jobs:
# Checkout latest commit # Checkout latest commit
- name: Checkout Medley - name: Checkout Medley
uses: actions/checkout@v6 uses: actions/checkout@v4
# Setup release tag # Setup release tag
- name: Setup Release Tag - name: Setup Release Tag
id: tag id: tag
uses: ./../actions/release-tag-action uses: ./../actions/release-tag-action
# Get Maiko release information, use maiko release tag from input or Latest # Get Maiko release information, retrieves the name of the latest (draft)
# release. Used to download the correct Maiko release # release. Used to download the correct Maiko release
# Find latest release (draft or normal)
- name: Get maiko release information - name: Get maiko release information
id: maiko id: maiko
run: | run: |
tag="" tag=""
if [ "${{ inputs.maiko_release }}" = "Latest" ]; if [ "${{ inputs.draft }}" = "true" ];
then
gh release list --repo ${{ github.repository_owner }}/maiko | grep Draft >/tmp/releases-$$
if [ $? -eq 0 ];
then
tag=$(head -n 1 /tmp/releases-$$ | awk '{ print $3 }')
fi
fi
if [ -z "${tag}" ];
then then
tag=$(gh release list --repo ${{ github.repository_owner }}/maiko | grep Latest | head -n 1 | awk '{ print $3 }') tag=$(gh release list --repo ${{ github.repository_owner }}/maiko | grep Latest | head -n 1 | awk '{ print $3 }')
else
tag=$(echo "${{ inputs.maiko_release }}" | sed 's/[[:space:]]//g')
set +e
gh release view ${tag} --repo ${{ github.repository_owner }}/maiko
if [ $? -ne 0 ]; then echo "!!!!!!! Error: Cannot find Maiko release ${tag}. Exiting."; exit 1; fi
set -e
fi fi
echo "maiko_tag=${tag}" >> ${GITHUB_OUTPUT} echo "maiko_tag=${tag}" >> ${GITHUB_OUTPUT}
env: env:
GITHUB_TOKEN: ${{ secrets.MAIKO_TOKEN }} GITHUB_TOKEN: ${{ secrets.MAIKO_TOKEN }}
# Setup environment variables & establish job outputs # Setup environment variables & establish job outputs
- name: Setup Environment Variables - name: Setup Environment Variables
run: | run: |
@@ -173,14 +166,11 @@ jobs:
echo "MAIKO_SHORT_RELEASE_TAG=${MAIKO_RELEASE_TAG#maiko-}" >>${GITHUB_ENV} echo "MAIKO_SHORT_RELEASE_TAG=${MAIKO_RELEASE_TAG#maiko-}" >>${GITHUB_ENV}
- name: Even More Environment Variables - name: Even More Environment Variables
run: | run: |
crt="${MEDLEY_SHORT_RELEASE_TAG}_${MAIKO_SHORT_RELEASE_TAG}" echo "COMBINED_RELEASE_TAG=${MEDLEY_SHORT_RELEASE_TAG}_${MAIKO_SHORT_RELEASE_TAG}" >>${GITHUB_ENV}
echo "COMBINED_RELEASE_TAG=${crt}" >>${GITHUB_ENV}
echo "GITHUB_RELEASE_TAG=medley-${crt}" >>${GITHUB_ENV}
- name: Establish job outputs - name: Establish job outputs
id: job_outputs id: job_outputs
run: | run: |
echo "COMBINED_RELEASE_TAG=${COMBINED_RELEASE_TAG}" >> ${GITHUB_OUTPUT} echo "COMBINED_RELEASE_TAG=${COMBINED_RELEASE_TAG}" >> ${GITHUB_OUTPUT}
echo "GITHUB_RELEASE_TAG=${GITHUB_RELEASE_TAG}" >> ${GITHUB_OUTPUT}
echo "MEDLEY_RELEASE_TAG=${MEDLEY_RELEASE_TAG}" >> ${GITHUB_OUTPUT} echo "MEDLEY_RELEASE_TAG=${MEDLEY_RELEASE_TAG}" >> ${GITHUB_OUTPUT}
echo "MEDLEY_SHORT_RELEASE_TAG=${MEDLEY_SHORT_RELEASE_TAG}" >> ${GITHUB_OUTPUT} echo "MEDLEY_SHORT_RELEASE_TAG=${MEDLEY_SHORT_RELEASE_TAG}" >> ${GITHUB_OUTPUT}
echo "MAIKO_RELEASE_TAG=${MAIKO_RELEASE_TAG}" >> $GITHUB_OUTPUT; echo "MAIKO_RELEASE_TAG=${MAIKO_RELEASE_TAG}" >> $GITHUB_OUTPUT;
@@ -203,7 +193,7 @@ jobs:
# Checkout Notecards and tar it in the tarballsdir # Checkout Notecards and tar it in the tarballsdir
- name: Checkout Notecards - name: Checkout Notecards
uses: actions/checkout@v6 uses: actions/checkout@v4
with: with:
repository: ${{ github.repository_owner }}/notecards repository: ${{ github.repository_owner }}/notecards
path: ./notecards path: ./notecards
@@ -231,20 +221,21 @@ jobs:
# Push the release up to github releases # Push the release up to github releases
- name: Delete existing release with same tag (if any) - name: Delete existing release with same tag (if any)
run: gh release delete ${{ env.GITHUB_RELEASE_TAG }} --cleanup-tag --yes || true uses: cb80/delrel@latest
env: with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} tag: ${{ env.MEDLEY_RELEASE_TAG }}
continue-on-error: true
- name: Push the release - name: Push the release
id: push id: push
uses: ncipollo/release-action@v1.21.0 uses: ncipollo/release-action@v1
with: with:
allowUpdates: true allowUpdates: true
artifacts: artifacts:
# ${{ env.TARBALL_DIR }}/notecards.tgz, # ${{ env.TARBALL_DIR }}/notecards.tgz,
${{ env.TARBALL_DIR }}/${{ env.MEDLEY_RELEASE_TAG }}-loadups.tgz, ${{ env.TARBALL_DIR }}/${{ env.MEDLEY_RELEASE_TAG }}-loadups.tgz,
${{ env.TARBALL_DIR }}/${{ env.MEDLEY_RELEASE_TAG }}-runtime.tgz ${{ env.TARBALL_DIR }}/${{ env.MEDLEY_RELEASE_TAG }}-runtime.tgz
tag: ${{ env.GITHUB_RELEASE_TAG }} tag: ${{ env.MEDLEY_RELEASE_TAG }}
draft: ${{ inputs.draft }} draft: ${{ inputs.draft }}
prerelease: false prerelease: false
generateReleaseNotes: true generateReleaseNotes: true
@@ -252,7 +243,7 @@ jobs:
# Save the tarball directory for subsequent jobs # Save the tarball directory for subsequent jobs
- name: Save tarballs - name: Save tarballs
uses: actions/upload-artifact@v7 uses: actions/upload-artifact@v4
with: with:
name: tarballs name: tarballs
path: ${{ env.TARBALL_DIR }} path: ${{ env.TARBALL_DIR }}
@@ -271,13 +262,13 @@ jobs:
needs: [sentry, loadup] needs: [sentry, loadup]
if: | if: |
needs.sentry.outputs.release_not_built == 'true' needs.sentry.outputs.release_not_built == 'true'
|| inputs.force == true || inputs.force == 'true'
steps: steps:
# Checkout latest commit # Checkout latest commit
- name: Checkout Medley - name: Checkout Medley
uses: actions/checkout@v6 uses: actions/checkout@v4
# Environment variables # Environment variables
- name: Environment variables - name: Environment variables
@@ -288,14 +279,13 @@ jobs:
echo "MEDLEY_RELEASE_TAG=${{ needs.loadup.outputs.medley_release_tag }}" \ echo "MEDLEY_RELEASE_TAG=${{ needs.loadup.outputs.medley_release_tag }}" \
>>${GITHUB_ENV} >>${GITHUB_ENV}
echo "ARTIFACTS_FILENAME_TEMPLATE=${{ needs.loadup.outputs.artifacts_filename_template }}" >>${GITHUB_ENV} echo "ARTIFACTS_FILENAME_TEMPLATE=${{ needs.loadup.outputs.artifacts_filename_template }}" >>${GITHUB_ENV}
echo "GITHUB_RELEASE_TAG=${{ needs.loadup.outputs.github_release_tag }}" >> ${GITHUB_ENV}
# Create taball dir # Create taball dir
- run: mkdir -p ${TARBALL_DIR} - run: mkdir -p ${TARBALL_DIR}
# Get the tarballs # Get the tarballs
- name: Get tarballs - name: Get tarballs
uses: actions/download-artifact@v8 uses: actions/download-artifact@v4
with: with:
name: tarballs name: tarballs
path: ${{ env.TARBALL_DIR }} path: ${{ env.TARBALL_DIR }}
@@ -310,13 +300,13 @@ jobs:
# Push the debs and tgz up to github releases # Push the debs and tgz up to github releases
- name: Push the release - name: Push the release
id: push_release id: push_release
uses: ncipollo/release-action@v1.21.0 uses: ncipollo/release-action@v1
with: with:
allowUpdates: true allowUpdates: true
artifacts: artifacts:
${{ env.DEBS_DIR }}/*.deb, ${{ env.DEBS_DIR }}/*.deb,
${{ env.TARS_DIR }}/*.tgz ${{ env.TARS_DIR }}/*.tgz
tag: ${{ env.GITHUB_RELEASE_TAG }} tag: ${{ env.MEDLEY_RELEASE_TAG }}
token: ${{ secrets.GITHUB_TOKEN }} token: ${{ secrets.GITHUB_TOKEN }}
omitBodyDuringUpdate: true omitBodyDuringUpdate: true
omitDraftDuringUpdate: true omitDraftDuringUpdate: true
@@ -329,7 +319,7 @@ jobs:
mv medley-full-linux-x86_64-*.tgz medley.tgz mv medley-full-linux-x86_64-*.tgz medley.tgz
- name: Save medley tar for use in cygwin installers - name: Save medley tar for use in cygwin installers
uses: actions/upload-artifact@v7 uses: actions/upload-artifact@v4
with: with:
name: medley-tar name: medley-tar
path: | path: |
@@ -348,7 +338,7 @@ jobs:
needs: [sentry, loadup] needs: [sentry, loadup]
if: | if: |
needs.sentry.outputs.release_not_built == 'true' needs.sentry.outputs.release_not_built == 'true'
|| inputs.force == true || inputs.force == 'true'
# if: false # if: false
defaults: defaults:
@@ -359,7 +349,7 @@ jobs:
# Checkout latest commit # Checkout latest commit
- name: Checkout Medley - name: Checkout Medley
uses: actions/checkout@v6 uses: actions/checkout@v4
# Environment variables # Environment variables
- name: Environment variables - name: Environment variables
@@ -370,14 +360,13 @@ jobs:
echo "TARBALL_DIR=${MACOS_DIR}/tmp/tarballs" >>${GITHUB_ENV} echo "TARBALL_DIR=${MACOS_DIR}/tmp/tarballs" >>${GITHUB_ENV}
echo "MEDLEY_RELEASE_TAG=${{ needs.loadup.outputs.medley_release_tag }}" >>${GITHUB_ENV} echo "MEDLEY_RELEASE_TAG=${{ needs.loadup.outputs.medley_release_tag }}" >>${GITHUB_ENV}
echo "ARTIFACTS_FILENAME_TEMPLATE=${{ needs.loadup.outputs.artifacts_filename_template }}" >>${GITHUB_ENV} echo "ARTIFACTS_FILENAME_TEMPLATE=${{ needs.loadup.outputs.artifacts_filename_template }}" >>${GITHUB_ENV}
echo "GITHUB_RELEASE_TAG=${{ needs.loadup.outputs.github_release_tag }}" >> ${GITHUB_ENV}
# Create tarball dir # Create tarball dir
- run: mkdir -p ${TARBALL_DIR} - run: mkdir -p ${TARBALL_DIR}
# Get the tarballs # Get the tarballs
- name: Get tarballs - name: Get tarballs
uses: actions/download-artifact@v8 uses: actions/download-artifact@v4
with: with:
name: tarballs name: tarballs
path: ${{ env.TARBALL_DIR }} path: ${{ env.TARBALL_DIR }}
@@ -392,13 +381,13 @@ jobs:
# Push the .dmg and .zip up to github releases # Push the .dmg and .zip up to github releases
- name: Push the release - name: Push the release
id: push_release id: push_release
uses: ncipollo/release-action@v1.21.0 uses: ncipollo/release-action@v1
with: with:
allowUpdates: true allowUpdates: true
artifacts: artifacts:
# 2023-07-20 not yet building dmg -- ${{ env.ARTIFACTS_DIR }}/*.dmg, # 2023-07-20 not yet building dmg -- ${{ env.ARTIFACTS_DIR }}/*.dmg,
${{ env.ARTIFACTS_DIR }}/*.zip ${{ env.ARTIFACTS_DIR }}/*.zip
tag: ${{ env.GITHUB_RELEASE_TAG }} tag: ${{ env.MEDLEY_RELEASE_TAG }}
token: ${{ secrets.GITHUB_TOKEN }} token: ${{ secrets.GITHUB_TOKEN }}
omitBodyDuringUpdate: true omitBodyDuringUpdate: true
omitDraftDuringUpdate: true omitDraftDuringUpdate: true
@@ -420,7 +409,7 @@ jobs:
needs: [sentry, loadup, linux_installer] needs: [sentry, loadup, linux_installer]
if: | if: |
needs.sentry.outputs.release_not_built == 'true' needs.sentry.outputs.release_not_built == 'true'
|| inputs.force == true || inputs.force == 'true'
outputs: outputs:
cygwin_installer: ${{ steps.compile_iss.outputs.CYGWIN_INSTALLER }} cygwin_installer: ${{ steps.compile_iss.outputs.CYGWIN_INSTALLER }}
@@ -429,7 +418,7 @@ jobs:
# Checkout latest commit # Checkout latest commit
- name: Checkout Medley - name: Checkout Medley
uses: actions/checkout@v6 uses: actions/checkout@v4
# Store the values output from loadup job as environment variables # Store the values output from loadup job as environment variables
- name: Environment Variables - name: Environment Variables
@@ -437,8 +426,6 @@ jobs:
run: | run: |
$crt="${{ needs.loadup.outputs.combined_release_tag }}" $crt="${{ needs.loadup.outputs.combined_release_tag }}"
echo "COMBINED_RELEASE_TAG=$crt" | Out-File -FilePath $Env:GITHUB_ENV -Encoding utf8 -Append echo "COMBINED_RELEASE_TAG=$crt" | Out-File -FilePath $Env:GITHUB_ENV -Encoding utf8 -Append
$grt="${{ needs.loadup.outputs.github_release_tag }}"
echo "GITHUB_RELEASE_TAG=$grt" | Out-File -FilePath $Env:GITHUB_ENV -Encoding utf8 -Append
$mrt="${{ needs.loadup.outputs.medley_release_tag }}" $mrt="${{ needs.loadup.outputs.medley_release_tag }}"
echo "MEDLEY_RELEASE_TAG=$mrt" | Out-File -FilePath $Env:GITHUB_ENV -Encoding utf8 -Append echo "MEDLEY_RELEASE_TAG=$mrt" | Out-File -FilePath $Env:GITHUB_ENV -Encoding utf8 -Append
$msrt="${{ needs.loadup.outputs.medley_short_release_tag }}" $msrt="${{ needs.loadup.outputs.medley_short_release_tag }}"
@@ -450,7 +437,7 @@ jobs:
# Retrieve medley tars from artifact store # Retrieve medley tars from artifact store
- name: Retrieve medley tar - name: Retrieve medley tar
uses: actions/download-artifact@v8 uses: actions/download-artifact@v4
with: with:
name: medley-tar name: medley-tar
path: installers/cygwin/ path: installers/cygwin/
@@ -500,11 +487,11 @@ jobs:
# Upload windows installer to release # Upload windows installer to release
- name: Upload windows installer to release - name: Upload windows installer to release
id: push id: push
uses: ncipollo/release-action@v1.21.0 uses: ncipollo/release-action@v1
with: with:
allowUpdates: true allowUpdates: true
artifacts: installers/cygwin/${{ env.CYGWIN_INSTALLER }} artifacts: installers/cygwin/${{ env.CYGWIN_INSTALLER }}
tag: ${{ env.GITHUB_RELEASE_TAG }} tag: ${{ env.MEDLEY_RELEASE_TAG }}
token: ${{ secrets.GITHUB_TOKEN }} token: ${{ secrets.GITHUB_TOKEN }}
omitBodyDuringUpdate: true omitBodyDuringUpdate: true
omitDraftDuringUpdate: true omitDraftDuringUpdate: true
@@ -525,7 +512,7 @@ jobs:
needs: [sentry, loadup, linux_installer, macos_installer, cygwin_installer] needs: [sentry, loadup, linux_installer, macos_installer, cygwin_installer]
if: | if: |
needs.sentry.outputs.release_not_built == 'true' needs.sentry.outputs.release_not_built == 'true'
|| inputs.force == true || inputs.force == 'true'
steps: steps:
@@ -534,8 +521,6 @@ jobs:
run: | run: |
crt="${{ needs.loadup.outputs.combined_release_tag }}" crt="${{ needs.loadup.outputs.combined_release_tag }}"
echo "COMBINED_RELEASE_TAG=${crt}" >>${GITHUB_ENV} echo "COMBINED_RELEASE_TAG=${crt}" >>${GITHUB_ENV}
grt="${{ needs.loadup.outputs.github_release_tag }}"
echo "GITHUB_RELEASE_TAG=${crt}" >>${GITHUB_ENV}
mrt="${{ needs.loadup.outputs.medley_release_tag }}" mrt="${{ needs.loadup.outputs.medley_release_tag }}"
echo "MEDLEY_RELEASE_TAG=${mrt}" >>${GITHUB_ENV} echo "MEDLEY_RELEASE_TAG=${mrt}" >>${GITHUB_ENV}
msrt="${{ needs.loadup.outputs.medley_short_release_tag }}" msrt="${{ needs.loadup.outputs.medley_short_release_tag }}"
@@ -545,7 +530,7 @@ jobs:
# Checkout latest commit # Checkout latest commit
- name: Checkout Medley - name: Checkout Medley
uses: actions/checkout@v6 uses: actions/checkout@v4
# Upload a dummy file to release # Upload a dummy file to release
@@ -555,11 +540,11 @@ jobs:
- run: echo "placeholder" >placeholder.txt - run: echo "placeholder" >placeholder.txt
- name: Upload windows placeholder.txt to release - name: Upload windows placeholder.txt to release
id: pushph id: pushph
uses: ncipollo/release-action@v1.21.0 uses: ncipollo/release-action@v1
with: with:
allowUpdates: true allowUpdates: true
artifacts: placeholder.txt artifacts: placeholder.txt
tag: ${{ env.GITHUB_RELEASE_TAG }} tag: ${{ env.MEDLEY_RELEASE_TAG }}
token: ${{ secrets.GITHUB_TOKEN }} token: ${{ secrets.GITHUB_TOKEN }}
omitBodyDuringUpdate: true omitBodyDuringUpdate: true
omitDraftDuringUpdate: true omitDraftDuringUpdate: true
@@ -609,7 +594,7 @@ jobs:
# Remove placeholder.txt # Remove placeholder.txt
- name: Remove placeholder.txt - name: Remove placeholder.txt
run: | run: |
gh release delete-asset ${{ env.GITHUB_RELEASE_TAG }} placeholder.txt --yes || true gh release delete-asset ${{ env.MEDLEY_RELEASE_TAG }} placeholder.txt --yes
env: env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -631,14 +616,14 @@ jobs:
steps: steps:
# Delete the tarballs artifact # Delete the tarballs artifact
- name: Delete tarballs artifact - name: Delete tarballs artifact
uses: geekyeggo/delete-artifact@v6 uses: geekyeggo/delete-artifact@v5
with: with:
name: tarballs name: tarballs
failOnError: false failOnError: false
# Checkout the actions for this repo owner # Checkout the actions for this repo owner
- name: Checkout Actions - name: Checkout Actions
uses: actions/checkout@v6 uses: actions/checkout@v4
with: with:
repository: ${{ github.repository_owner }}/.github repository: ${{ github.repository_owner }}/.github
path: ./Actions_${{ github.sha }} path: ./Actions_${{ github.sha }}

View File

@@ -24,22 +24,18 @@ on:
workflow_dispatch: workflow_dispatch:
inputs: inputs:
maiko_release:
description: "What maiko release to use"
type: string
default: 'Latest'
draft: draft:
description: "Mark this as a draft release" description: "Mark this as a draft release"
type: boolean type: choice
default: false options:
online: - 'false'
description: "Deploy this release online" - 'true'
type: boolean
default: true
force: force:
description: "Force build even if build already successfully completed for this commit" description: "Force build even if build already successfully completed for this commit"
type: boolean type: choice
default: false options:
- 'false'
- 'true'
workflow_call: workflow_call:
outputs: outputs:
@@ -47,26 +43,16 @@ on:
description: "'True' if medley build completed successully" description: "'True' if medley build completed successully"
value: ${{ jobs.complete.outputs.build_successful }} value: ${{ jobs.complete.outputs.build_successful }}
inputs: inputs:
maiko_release:
description: "What maiko release to use"
required: false
type: string
default: 'Latest'
draft: draft:
description: "Mark this as a draft release" description: "Mark this as a draft release"
required: false required: false
type: boolean type: string
default: false default: 'false'
online:
description: "Deploy this release online"
required: false
type: boolean
default: true
force: force:
description: "Force build even if build already successfully completed for this commit" description: "Force build even if build already successfully completed for this commit"
required: false required: false
type: boolean type: string
default: false default: 'false'
defaults: defaults:
run: run:
@@ -77,53 +63,75 @@ defaults:
jobs: jobs:
######################################################################################
# Regularize the inputs so they can be referenced the same way whether they are
# the result of a workflow_dispatch or a workflow_call
inputs:
runs-on: ubuntu-24.04
outputs:
draft: ${{ steps.one.outputs.draft }}
force: ${{ steps.one.outputs.force }}
steps:
- id: one
run: >
if [ '${{ toJSON(inputs) }}' != '{}' ];
then
echo "draft=${{ inputs.draft }}" >> $GITHUB_OUTPUT;
echo "force=${{ inputs.force }}" >> $GITHUB_OUTPUT;
else
echo "draft=false" >> $GITHUB_OUTPUT;
echo "force=false" >> $GITHUB_OUTPUT;
fi
###################################################################################### ######################################################################################
# Build Loadup # Build Loadup
do_release: do_release:
needs: inputs
uses: ./.github/workflows/buildLoadup.yml uses: ./.github/workflows/buildLoadup.yml
with: with:
maiko_release: ${{ inputs.maiko_release }} draft: ${{ needs.inputs.outputs.draft }}
draft: ${{ inputs.draft }} force: ${{ needs.inputs.outputs.force }}
force: ${{ inputs.force }}
secrets: inherit secrets: inherit
###################################################################################### ######################################################################################
# Build Docker Image # Build Docker Image
do_docker: do_docker:
needs: [do_release] needs: [inputs, do_release]
uses: ./.github/workflows/buildDocker.yml uses: ./.github/workflows/buildDocker.yml
with: with:
github_release_tag: ${{ needs.do_release.outputs.github_release_tag }} draft: ${{ needs.inputs.outputs.draft }}
draft: ${{ inputs.draft }} force: ${{ needs.inputs.outputs.force }}
force: ${{ inputs.force }}
secrets: inherit secrets: inherit
###################################################################################### ######################################################################################
# Run HCFILES and push to files.interlisp.org # Run HCFILES and push to files.interlisp.org
do_HCFILES: do_HCFILES:
needs: [do_release] needs: [inputs, do_release]
uses: ./.github/workflows/doHCFILES.yml uses: ./.github/workflows/doHCFILES.yml
with: with:
draft: ${{ inputs.draft }} draft: ${{ needs.inputs.outputs.draft }}
secrets: inherit secrets: inherit
###################################################################################### ######################################################################################
# Kickoff workflow in online repo to build and deploy Medley docker image to oio # Kickoff workflow in online repo to build and deploy Medley docker image to oio
do_oio: do_oio:
if: ${{ inputs.online == true }}
runs-on: ubuntu-24.04 runs-on: ubuntu-24.04
needs: [do_release, do_docker] needs: [inputs, do_docker]
steps: steps:
- name: trigger-oio-buildAndDeploy - name: trigger-oio-buildAndDeploy
run: | run: |
gh workflow run buildAndDeployMedleyDocker.yml \ if [ ! "${{ needs.inputs.outputs.draft }}" = "true" ]
--repo Interlisp/online --ref fgh_deploy-specific \ then
-f github_release_tag=${{ needs.do_release.outputs.github_release_tag }} \ gh workflow run buildAndDeployMedleyDocker.yml --repo Interlisp/online --ref main
-f draft=${{ inputs.draft }} fi
env: env:
GITHUB_TOKEN: ${{ secrets.ONLINE_TOKEN }} GITHUB_TOKEN: ${{ secrets.ONLINE_TOKEN }}

View File

@@ -50,28 +50,28 @@ jobs:
steps: steps:
- name: Checkout Medley repo - name: Checkout Medley repo
uses: actions/checkout@v6 uses: actions/checkout@v4
- name: Checkout maiko - name: Checkout maiko
uses: actions/checkout@v6 uses: actions/checkout@v4
with: with:
repository: ${{ github.repository_owner }}/maiko repository: ${{ github.repository_owner }}/maiko
path: ./maiko path: ./maiko
- name: Checkout notecards - name: Checkout notecards
uses: actions/checkout@v6 uses: actions/checkout@v4
with: with:
repository: ${{ github.repository_owner }}/notecards repository: ${{ github.repository_owner }}/notecards
path: ./notecards path: ./notecards
- name: Checkout loops - name: Checkout loops
uses: actions/checkout@v6 uses: actions/checkout@v4
with: with:
repository: ${{ github.repository_owner }}/loops repository: ${{ github.repository_owner }}/loops
path: ./loops path: ./loops
- name: Checkout test - name: Checkout test
uses: actions/checkout@v6 uses: actions/checkout@v4
with: with:
repository: ${{ github.repository_owner }}/test repository: ${{ github.repository_owner }}/test
path: ./test path: ./test

2
.gitignore vendored
View File

@@ -31,7 +31,7 @@ loadups/whereis.hash
loadups/apps.sysout loadups/apps.sysout
loadups/fuller.database loadups/fuller.database
loadups/build/ loadups/build/
loadups/tagged loadups/branches
loadups/gitinfo loadups/gitinfo

View File

@@ -1,14 +1,12 @@
# Medley # Medley
The [Medley Interlisp Project](https://interlisp.org) aims to preserve, revive, and modernize the [Interlisp](https://interlisp.org) software development environment for rapid prototyping, research and Artificial Intelligence created at Xerox PARC since the 1970s. This repository is for the Lisp environment of [Medley](https://interlisp.org).
This repository is for the Lisp environment of the [Medley](https://interlisp.org) release of Interlisp. Other repositories hold additional subsystems and applications such as [Maiko](https://github.com/Interlisp/maiko), the implementation (in C) of the Medley virtual machine, the [LOOPS](https://github.com/Interlisp/loops) object-oriented extension of Interlisp, and the [NoteCards](https://github.com/Interlisp/notecards) hypermedia system. [Install and Run](https://interlisp.org/software/install-and-run) covers ways to install and start up Medley on Linux systems, MacOS, and Windows (with or without WSL).
[Install and Run](https://interlisp.org/software/install-and-run) covers ways to install and start up Medley on Linux systems, MacOS, Windows (with or without WSL), and in a web browser.
[Using Medley](https://interlisp.org/software/using-medley/) has an overview and pointers to documentation. [Using Medley](https://interlisp.org/software/using-medley/) has an overview and pointers to documentation.
The [Glossary](https://interlisp.org/history/glossary) defines system-specific terms such as "loadup" and "sysout". [Interlisp/maiko](https://github.com/Interlisp/maiko), is the repo for the implementation (in C) of the Medley virtual machine.
## Releases ## Releases
@@ -69,9 +67,25 @@ If you have a high-resolution display, note that much of the graphics was design
Medley presumes you have a 3-button mouse; the scroll-wheel on some mice acts as one, with some difficulty. Go into XQuartz Preferences/Input and check "Emulate three button mouse" option. Medley presumes you have a 3-button mouse; the scroll-wheel on some mice acts as one, with some difficulty. Go into XQuartz Preferences/Input and check "Emulate three button mouse" option.
### Running Medley Interlisp ### Running Medley Interlisp (obsolete)
The primer [Medley Interlisp for the Newcomer](https://primer.interlisp.org) eases new users into the Interlisp environment. It assumes no prior knowledge of Lisp and covers the user interface, programming and debugging, windows and graphics, and more. We recommend consulting this document to learn how to run and use the system. The `run-medley` script in this repo sets up some convenient defaults. Running Medley can be done by typing:
```
$ cd medley
$ ./run-medley
```
Or, if you wish to start Medley up with a different SYSOUT:
```
$ cd medley
$ ./run-medley <SYSOUT-file-name>
```
The first time the system is run it loads the system image that comes
with the system. When you exit the system (or "do a `SaveVM`" menu
option) the state of your machine is saved in a file named
`~/lisp.virtualmem`. Subsequent system startups load the
`~/lisp.virtualmem` image by default.
### Exiting The System ### Exiting The System
@@ -109,7 +123,7 @@ Each directory should have a README.md, but briefly
* BUILDING.md -- instructions on how to make your own loadups * BUILDING.md -- instructions on how to make your own loadups
* clos -- early implementation of Common Lisp Object System * clos -- early implementation of Common Lisp Object System
* CLTL2 -- files submitted to bring Medley up to the conformance to "Common Lisp, the Language" 2nd edition. Not enough to conform to the ANSI standard lisp. * CLTL2 -- files submitted to bring Medley up to the conformance to "Common Lisp, the Language" 2nd edition. Not enough to conform to the ANSI standard lisp.
* docs -- Documentation files (in TEdit format, PDFs, or online help * docs -- Documentation files (in TEdit format, PDFs, or online help; look [here](https://github.com/Interlisp/medley/Documentation))
* fonts -- raster fonts (or font widths) in various resolutions for display, postscript, interpress, press formats * fonts -- raster fonts (or font widths) in various resolutions for display, postscript, interpress, press formats
* greetfiles -- various configuration setups * greetfiles -- various configuration setups
* internal -- These _were_ internal to Venue * internal -- These _were_ internal to Venue

View File

@@ -0,0 +1,2 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/><title>Medley-Primer-OnePage</title></head><frameset cols="310pt,*" rows="94%"><frame src="Medley-Primer-OnePage_files/headings.htm" name="headings"/><frame src="Medley-Primer-OnePage_files/content.htm" name="content"/></frameset></html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 772 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 799 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 320 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 488 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 420 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 162 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 577 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 836 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 162 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 320 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 320 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 162 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 925 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 916 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 162 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 162 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 792 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 312 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 828 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 320 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 162 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 162 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 320 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 162 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 741 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 871 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 660 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 751 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 727 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 892 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 77 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 947 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 162 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 162 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 320 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 162 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 162 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 320 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 544 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 162 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 661 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 320 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 162 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 162 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 901 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Some files were not shown because too many files have changed in this diff Show More