Skip to content

Commit

Permalink
Merge branch 'master' into replace-gapi
Browse files Browse the repository at this point in the history
  • Loading branch information
martin-henz authored Mar 4, 2024
2 parents 6ce1f9f + db17a00 commit 09a3c6c
Show file tree
Hide file tree
Showing 115 changed files with 2,697 additions and 835 deletions.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@
"flexboxgrid-helpers": "^1.1.3",
"google-oauth-gsi": "^4.0.0",
"hastscript": "^9.0.0",
"js-slang": "^1.0.45",
"js-slang": "^1.0.46",
"js-yaml": "^4.1.0",
"konva": "^9.2.0",
"lodash": "^4.17.21",
Expand Down
Binary file added src/assets/SA.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
22 changes: 11 additions & 11 deletions src/commons/application/ApplicationTypes.ts
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,7 @@ export interface SALanguage extends Language {
type LanguageFeatures = Partial<{
dataVisualizer: boolean;
substVisualizer: boolean;
envVisualizer: boolean;
cseMachine: boolean;
multiFile: boolean;
repl: boolean;
}>;
Expand Down Expand Up @@ -252,8 +252,8 @@ export const sourceLanguages: SALanguage[] = sourceSubLanguages.map(sublang => {
chapter <= Chapter.SOURCE_2 &&
(variant === Variant.DEFAULT || variant === Variant.NATIVE || variant === Variant.TYPED);

// Enable Env Visualizer for Source Chapter 3 and above
supportedFeatures.envVisualizer =
// Enable CSE Machine for Source Chapter 3 and above
supportedFeatures.cseMachine =
chapter >= Chapter.SOURCE_3 && variant !== Variant.CONCURRENT && variant !== Variant.NON_DET;

// Local imports/exports require Source 2+ as Source 1 does not have lists.
Expand Down Expand Up @@ -417,10 +417,10 @@ export const defaultWorkspaceManager: WorkspaceManagerState = {
playground: {
...createDefaultWorkspace('playground'),
usingSubst: false,
usingEnv: false,
updateEnv: true,
envSteps: -1,
envStepsTotal: 0,
usingCse: false,
updateCse: true,
currentStep: -1,
stepsTotal: 0,
breakpointSteps: [],
activeEditorTabIndex: 0,
editorTabs: [
Expand Down Expand Up @@ -470,10 +470,10 @@ export const defaultWorkspaceManager: WorkspaceManagerState = {
sicp: {
...createDefaultWorkspace('sicp'),
usingSubst: false,
usingEnv: false,
updateEnv: true,
envSteps: -1,
envStepsTotal: 0,
usingCse: false,
updateCse: true,
currentStep: -1,
stepsTotal: 0,
breakpointSteps: [],
activeEditorTabIndex: 0,
editorTabs: [
Expand Down
18 changes: 9 additions & 9 deletions src/commons/application/__tests__/ApplicationTypes.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ describe('getLanguageConfig', () => {
});

test('throws an error for an invalid chapter/variant combination', () => {
expect(() => getLanguageConfig(5, Variant.DEFAULT)).toThrowErrorMatchingSnapshot();
expect(() => getLanguageConfig(5 as Chapter, Variant.DEFAULT)).toThrowErrorMatchingSnapshot();
});
});

Expand Down Expand Up @@ -50,12 +50,12 @@ describe('available Source language configurations', () => {
{
chapter: Chapter.SOURCE_3,
variant: Variant.DEFAULT,
supports: { dataVisualizer: true, envVisualizer: true }
supports: { dataVisualizer: true, cseMachine: true }
},
{
chapter: Chapter.SOURCE_3,
variant: Variant.TYPED,
supports: { dataVisualizer: true, envVisualizer: true }
supports: { dataVisualizer: true, cseMachine: true }
},
{
chapter: Chapter.SOURCE_3,
Expand All @@ -66,33 +66,33 @@ describe('available Source language configurations', () => {
{
chapter: Chapter.SOURCE_3,
variant: Variant.NATIVE,
supports: { dataVisualizer: true, envVisualizer: true }
supports: { dataVisualizer: true, cseMachine: true }
},
// Source 4
{
chapter: Chapter.SOURCE_4,
variant: Variant.DEFAULT,
supports: { dataVisualizer: true, envVisualizer: true }
supports: { dataVisualizer: true, cseMachine: true }
},
{
chapter: Chapter.SOURCE_4,
variant: Variant.TYPED,
supports: { dataVisualizer: true, envVisualizer: true }
supports: { dataVisualizer: true, cseMachine: true }
},
{
chapter: Chapter.SOURCE_4,
variant: Variant.GPU,
supports: { dataVisualizer: true, envVisualizer: true }
supports: { dataVisualizer: true, cseMachine: true }
},
{
chapter: Chapter.SOURCE_4,
variant: Variant.NATIVE,
supports: { dataVisualizer: true, envVisualizer: true }
supports: { dataVisualizer: true, cseMachine: true }
},
{
chapter: Chapter.SOURCE_4,
variant: Variant.EXPLICIT_CONTROL,
supports: { dataVisualizer: true, envVisualizer: true }
supports: { dataVisualizer: true, cseMachine: true }
}
];

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,8 +71,8 @@ Array [
"displayName": "Source §1",
"mainLanguage": "JavaScript",
"supports": Object {
"cseMachine": false,
"dataVisualizer": false,
"envVisualizer": false,
"multiFile": false,
"repl": true,
"substVisualizer": true,
Expand All @@ -84,8 +84,8 @@ Array [
"displayName": "Source §1 Typed",
"mainLanguage": "JavaScript",
"supports": Object {
"cseMachine": false,
"dataVisualizer": false,
"envVisualizer": false,
"multiFile": false,
"repl": true,
"substVisualizer": true,
Expand All @@ -97,8 +97,8 @@ Array [
"displayName": "Source §1 WebAssembly",
"mainLanguage": "JavaScript",
"supports": Object {
"cseMachine": false,
"dataVisualizer": false,
"envVisualizer": false,
"multiFile": false,
"repl": true,
"substVisualizer": false,
Expand All @@ -110,8 +110,8 @@ Array [
"displayName": "Source §1 Lazy",
"mainLanguage": "JavaScript",
"supports": Object {
"cseMachine": false,
"dataVisualizer": false,
"envVisualizer": false,
"multiFile": false,
"repl": true,
"substVisualizer": false,
Expand All @@ -123,8 +123,8 @@ Array [
"displayName": "Source §1 Native",
"mainLanguage": "JavaScript",
"supports": Object {
"cseMachine": false,
"dataVisualizer": false,
"envVisualizer": false,
"multiFile": false,
"repl": true,
"substVisualizer": true,
Expand All @@ -136,8 +136,8 @@ Array [
"displayName": "Source §2",
"mainLanguage": "JavaScript",
"supports": Object {
"cseMachine": false,
"dataVisualizer": true,
"envVisualizer": false,
"multiFile": true,
"repl": true,
"substVisualizer": true,
Expand All @@ -149,8 +149,8 @@ Array [
"displayName": "Source §2 Typed",
"mainLanguage": "JavaScript",
"supports": Object {
"cseMachine": false,
"dataVisualizer": true,
"envVisualizer": false,
"multiFile": true,
"repl": true,
"substVisualizer": true,
Expand All @@ -162,8 +162,8 @@ Array [
"displayName": "Source §2 Lazy",
"mainLanguage": "JavaScript",
"supports": Object {
"cseMachine": false,
"dataVisualizer": true,
"envVisualizer": false,
"multiFile": true,
"repl": true,
"substVisualizer": false,
Expand All @@ -175,8 +175,8 @@ Array [
"displayName": "Source §2 Native",
"mainLanguage": "JavaScript",
"supports": Object {
"cseMachine": false,
"dataVisualizer": true,
"envVisualizer": false,
"multiFile": true,
"repl": true,
"substVisualizer": true,
Expand All @@ -188,8 +188,8 @@ Array [
"displayName": "Source §3",
"mainLanguage": "JavaScript",
"supports": Object {
"cseMachine": true,
"dataVisualizer": true,
"envVisualizer": true,
"multiFile": true,
"repl": true,
"substVisualizer": false,
Expand All @@ -201,8 +201,8 @@ Array [
"displayName": "Source §3 Typed",
"mainLanguage": "JavaScript",
"supports": Object {
"cseMachine": true,
"dataVisualizer": true,
"envVisualizer": true,
"multiFile": true,
"repl": true,
"substVisualizer": false,
Expand All @@ -214,8 +214,8 @@ Array [
"displayName": "Source §3 Concurrent",
"mainLanguage": "JavaScript",
"supports": Object {
"cseMachine": false,
"dataVisualizer": true,
"envVisualizer": false,
"multiFile": true,
"repl": false,
"substVisualizer": false,
Expand All @@ -227,8 +227,8 @@ Array [
"displayName": "Source §3 Non-Det",
"mainLanguage": "JavaScript",
"supports": Object {
"cseMachine": false,
"dataVisualizer": true,
"envVisualizer": false,
"multiFile": true,
"repl": true,
"substVisualizer": false,
Expand All @@ -240,8 +240,8 @@ Array [
"displayName": "Source §3 Native",
"mainLanguage": "JavaScript",
"supports": Object {
"cseMachine": true,
"dataVisualizer": true,
"envVisualizer": true,
"multiFile": true,
"repl": true,
"substVisualizer": false,
Expand All @@ -253,8 +253,8 @@ Array [
"displayName": "Source §4",
"mainLanguage": "JavaScript",
"supports": Object {
"cseMachine": true,
"dataVisualizer": true,
"envVisualizer": true,
"multiFile": true,
"repl": true,
"substVisualizer": false,
Expand All @@ -266,8 +266,8 @@ Array [
"displayName": "Source §4 Typed",
"mainLanguage": "JavaScript",
"supports": Object {
"cseMachine": true,
"dataVisualizer": true,
"envVisualizer": true,
"multiFile": true,
"repl": true,
"substVisualizer": false,
Expand All @@ -279,8 +279,8 @@ Array [
"displayName": "Source §4 GPU",
"mainLanguage": "JavaScript",
"supports": Object {
"cseMachine": true,
"dataVisualizer": true,
"envVisualizer": true,
"multiFile": true,
"repl": true,
"substVisualizer": false,
Expand All @@ -292,8 +292,8 @@ Array [
"displayName": "Source §4 Native",
"mainLanguage": "JavaScript",
"supports": Object {
"cseMachine": true,
"dataVisualizer": true,
"envVisualizer": true,
"multiFile": true,
"repl": true,
"substVisualizer": false,
Expand All @@ -305,8 +305,8 @@ Array [
"displayName": "Source §4 Explicit-Control",
"mainLanguage": "JavaScript",
"supports": Object {
"cseMachine": true,
"dataVisualizer": true,
"envVisualizer": true,
"multiFile": true,
"repl": true,
"substVisualizer": false,
Expand Down
8 changes: 4 additions & 4 deletions src/commons/sagas/AchievementSaga.ts
Original file line number Diff line number Diff line change
Expand Up @@ -193,16 +193,16 @@ export default function* AchievementSaga(): SagaIterator {
);
if (action.payload.find(e => e === EventType.ERROR)) {
// TODO update this to work with new side content system
// Flash the home icon if there is an error and the user is in the env viz or subst viz tab
// Flash the home icon if there is an error and the user is in the CSE machine or subst viz tab
const introIcon = document.getElementById(SideContentType.introduction + '-icon');
const envTab = document.getElementById(
'bp4-tab-panel_side-content-tabs_' + SideContentType.envVisualizer
const cseTab = document.getElementById(
'bp4-tab-panel_side-content-tabs_' + SideContentType.cseMachine
);
const substTab = document.getElementById(
'bp4-tab-panel_side-content-tabs_' + SideContentType.substVisualizer
);
if (
(envTab && envTab.ariaHidden === 'false') ||
(cseTab && cseTab.ariaHidden === 'false') ||
(substTab && substTab.ariaHidden === 'false')
) {
introIcon && introIcon.classList.add('side-content-tab-alert-error');
Expand Down
26 changes: 13 additions & 13 deletions src/commons/sagas/PlaygroundSaga.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { compressToEncodedURIComponent } from 'lz-string';
import qs from 'query-string';
import { SagaIterator } from 'redux-saga';
import { call, delay, put, race, select } from 'redux-saga/effects';
import EnvVisualizer from 'src/features/envVisualizer/EnvVisualizer';
import CseMachine from 'src/features/cseMachine/CseMachine';

import {
changeQueryString,
Expand All @@ -22,11 +22,11 @@ import { showSuccessMessage, showWarningMessage } from '../utils/notifications/N
import {
clearReplOutput,
setEditorHighlightedLines,
toggleUpdateEnv,
toggleUsingEnv,
toggleUpdateCse,
toggleUsingCse,
toggleUsingSubst,
updateEnvSteps,
updateEnvStepsTotal
updateCurrentStep,
updateStepsTotal
} from '../workspace/WorkspaceActions';
import { EditorTabState, PlaygroundWorkspaceState } from '../workspace/WorkspaceTypes';
import { safeTakeEvery as takeEvery } from './SafeEffects';
Expand Down Expand Up @@ -97,23 +97,23 @@ export default function* PlaygroundSaga(): SagaIterator {
}
}

if (newId !== SideContentType.envVisualizer) {
yield put(toggleUsingEnv(false, workspaceLocation));
yield call([EnvVisualizer, EnvVisualizer.clearEnv]);
yield put(updateEnvSteps(-1, workspaceLocation));
yield put(updateEnvStepsTotal(0, workspaceLocation));
yield put(toggleUpdateEnv(true, workspaceLocation));
if (newId !== SideContentType.cseMachine) {
yield put(toggleUsingCse(false, workspaceLocation));
yield call([CseMachine, CseMachine.clearCse]);
yield put(updateCurrentStep(-1, workspaceLocation));
yield put(updateStepsTotal(0, workspaceLocation));
yield put(toggleUpdateCse(true, workspaceLocation));
yield put(setEditorHighlightedLines(workspaceLocation, 0, []));
}

if (
isSourceLanguage(playgroundSourceChapter) &&
(newId === SideContentType.substVisualizer || newId === SideContentType.envVisualizer)
(newId === SideContentType.substVisualizer || newId === SideContentType.cseMachine)
) {
if (playgroundSourceChapter <= Chapter.SOURCE_2) {
yield put(toggleUsingSubst(true, workspaceLocation));
} else {
yield put(toggleUsingEnv(true, workspaceLocation));
yield put(toggleUsingCse(true, workspaceLocation));
}
}
}
Expand Down
Loading

0 comments on commit 09a3c6c

Please sign in to comment.