Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
86 changes: 86 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
name: CI

on:
push:
pull_request:

jobs:
dart-tests:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Dart
uses: dart-lang/setup-dart@v1
with:
sdk: stable

- name: Install dependencies
run: dart pub get

- name: Run test suite
run: dart test

sympy-smoke:
runs-on: ubuntu-latest
needs: dart-tests
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Dart
uses: dart-lang/setup-dart@v1
with:
sdk: stable

- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: "3.11"

- name: Install Dart dependencies
run: dart pub get

- name: Install SymPy dependencies
run: pip install -r test/integration/sympy/requirements.txt

- name: Generate cross-CAS test vectors
run: dart test test/integration/sympy/sympy_export_integration_test.dart

- name: Verify against SymPy
run: python test/integration/sympy/verify_sympy_export.py

- name: Upload SymPy verification artifacts
if: always()
uses: actions/upload-artifact@v4
with:
name: sympy-smoke-artifacts
path: |
test/integration/sympy/test_cases.json
test/integration/sympy/verification_results.json

evaluability-guardrail:
runs-on: ubuntu-latest
needs: dart-tests
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Dart
uses: dart-lang/setup-dart@v1
with:
sdk: stable

- name: Install dependencies
run: dart pub get

- name: Run evaluability fast-path benchmark guardrail
run: dart run benchmark/evaluability_fast_path_benchmark.dart --enforce --min-speedup=1.02 --json-out=benchmark/results/evaluability_fast_path.json

- name: Upload benchmark artifact
if: always()
uses: actions/upload-artifact@v4
with:
name: evaluability-fast-path-benchmark
path: benchmark/results/evaluability_fast_path.json
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -68,3 +68,6 @@ wasm/build/*
*.wasm
*.mjs
*.wasm.map

# FVM Version Cache
.fvm/
29 changes: 29 additions & 0 deletions .vitepress/Layout.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
<script setup lang="ts">
import DefaultTheme from 'vitepress/theme'
import PageActionMenu from './components/PageActionMenu.vue'
import SidebarText from './components/SidebarText.vue';
import Ray from './components/Ray.vue';

const { Layout } = DefaultTheme
</script>

<template>
<Layout>
<template #doc-top>
<Ray class="h-[220px] top-0 left-0 opacity-25 dark:opacity-[.55] pointer-events-none" static />
</template>
<template #doc-before>
<div class="flex justify-between mb-2">
<SidebarText />
<PageActionMenu />
</div>
</template>
</Layout>
</template>

<style>
/* Hide the default outline */
.VPDocAsideOutline {
display: none !important;
}
</style>
17 changes: 17 additions & 0 deletions .vitepress/components/Card.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<script setup lang="ts">
interface Props {
href: string;
title: string;
description: string;
}

const props = defineProps<Props>();
</script>

<template>
<component :is="props.href ? 'a' : 'div'" role="article" :href="props.href"
class="clicky flex flex-col gap-1 !text-gray-600 text-sm px-4 py-3 rounded-2xl border border-gray-200 dark:bg-slate-800 dark:border-slate-800 dark:!text-gray-300 interact:shadow-xl !transition-all shadow-gray-700/5 duration-300 !font-normal !no-underline">
<h3 class="!text-black dark:!text-white !font-medium text-lg !my-0">{{ props.title }}</h3>
<p class="!m-0 !leading-normal">{{ props.description }}</p>
</component>
</template>
Loading