Skip to content
This repository has been archived by the owner on Mar 13, 2024. It is now read-only.

Create benchmarks for useful idioms that Ibis uses #65

Merged
merged 2 commits into from
Mar 30, 2022
Merged

Conversation

Cypher1
Copy link
Contributor

@Cypher1 Cypher1 commented Mar 30, 2022

Recent refactors switched from

let mut data: Vec = some_slice.to_vec();
data.push(new_value);

to

let data = [some_slice, &[new_value]].concat();

The switch was simply for readability but I hadn't tested that these actually had the same runtime characteristics.

This PR adds a benchmark to check that they do actually perform similarly and finds that (at least on my machine) they perform equally well (modulo noise).

Adding this to the repo ensures that if we start seeing weird performance issues we can rule out a problem with this technique.

Cypher1 added 2 commits March 30, 2022 14:48
Change-Id: Ieaa9ceae117d39f41ca7e44c724d685bc0214347
Change-Id: I53509fdcee64809bd31200475b9fce2cbc358652
@Cypher1 Cypher1 merged commit f02bd86 into main Mar 30, 2022
@Cypher1 Cypher1 deleted the ui_tweaks branch March 30, 2022 05:17
Cypher1 added a commit that referenced this pull request Apr 22, 2022
Change-Id: I8da6a9bee8b50b191aab0bff9467a5701a17e9f4

A system that kinda works, allows generating new entities at solve time

Change-Id: I94f10ba56844f92f9dad16f015907136aa08e642

Split main into a binary and library

Change-Id: I758d1ecef2aa057291d28849fe5a9d5867b5a8a8

Turn demo into tests for subtyping behaviour

Change-Id: I19ed9d7a16737d829810fe0c8635b71805ec4e60

Clean up tests for subtyping

Change-Id: I70085f395783c7bb8339133a2d44820439937879

Use a mutex to enforce updates to the context to be atomic

Change-Id: If79784863da37f8d169a75703cb6a56d23d034c4

Format

Change-Id: I52135e1b5cbfdc0a555653937712e0849da9bd1f

Support for very basic generic types

Change-Id: Id5e291b42e7295729f63fb9479cf5e4fb2521127

Remove unused stuff

Change-Id: I3ec1e0a4d8007c2b69dbfaf41e861da2967e2d03

Create a proc macro that better defines a crepe reasoning block

Change-Id: Ibe9f56467b9b6a2bccdcd91653c3ccef3edbbcc7

Fix casing issues

Change-Id: If281bc59d5ce8bbd04b60ba72811874743d71821

Move the string handling into ibis lib

Change-Id: I42d027713ac32dafaa8ab76c68b740fa0bd688f9

Avoid string literals (but support them)

Change-Id: I564a0a35c44eadf20ca7cdb942348142a356d0dd

Clean up unused relations

Change-Id: I6cfebf32b905fc2c4baedbdc02c9d71658112169

Rename gen! to apply! for clarity

Change-Id: I27514b87c76a10a3ef7ad0fb362e3337ff7f075a

Fmt

Change-Id: I434f66357491ff003ff818c67cb6d3a8f71aeb8d

Add support for trailing comma in facts!

Change-Id: I3af569c715d05d6e65eb7dfb7967b9603d3db1dd

Add support for trailing comma in set!

Change-Id: I0521882380e4873d182e1c100c43146e1ff76ac1

s/last_ent/last_id/, fix mutex usage causing race

Change-Id: Id2546edf22e818c9deb0e68f38a68905b0da4888

Use sorted vectors for better assert_eq output

Change-Id: Ibd3e779c4e30c6a2a9ae44508841b88cfa44062d

Better argument counting

Change-Id: I1edd6716eb5bf5ca1063de9ca7bfcc62771c5bf0

Format tests

Change-Id: I1862b0cd4d0ab8cdb264fbe1caf50f9725232918

Allow use of explicit 'Claim where needed

Change-Id: Ie183760d5d08995ccc6a68c226b7f7f6db28b105

Add solution IDs

Change-Id: I783539b57ef16ebcf3c605cb6c000fabc5c8c46b

Add support for solutions as graphs of connected entities

Change-Id: Ifd12064124308fe051c14f64a2643b8628c4ccbb

Split lib into modules and reformat

Change-Id: I41e116e5e054c629e1e726082179581ec3fe4272

Remove Sol::Any

Change-Id: I69d115ec10b6aad2c063f0db202a501c8773e462

Improve separation between Ctx/Sol/Ent module and SolData module

Change-Id: I5b864c68904e3db62acb60a3f1298dd38c291c0d

Rename SolData to Solution

Change-Id: Ibafb32228534af07c9de1ad1f20eded69c107715

Ensure that debugging features are able to be turned off using compile time flags

Change-Id: If516be636a0ab969c9fc487d727a0a3a6deb14fb

Add add_data function to avoid facts! macro

Change-Id: Icdd89866ef4de95ea07937aa60173c2a67e300c6

Fix cases where relations cannot be easily added to the runtime

Change-Id: I1a47ab2392ada4d7173443cfd5e5a0e7aca2a0fb

Prepare for open sourcing

Change-Id: I22782fa7c75bd416881f8f695cda2a61627644b5

Clean up module and type naming

Change-Id: I962c47a6030fb8f8f249b3e3359aaabe556dd33c

Make context's maps more consistently named

Change-Id: If483951fbfd750911e7992847a3f12087f852935

Implement a bimap to make the context datastructure safer

Change-Id: Icb15ac21d319cc68473e1cc9df04e11f545bcb0f

Implement example of private data tainting with checks and claims

Change-Id: I99d5161bcb99684ed271cf20360a309dd03ec9e2

Move ibis into a sub-dir

Change-Id: I3e3c827fe923f050f9874a3a08287b8daae50efb

Add a root README

Change-Id: I868eaf2e785b281de307de4f43f98efaaed118fd

Add docs

Change-Id: Ib42167b108e59fcc89f36032929a036eea045c5d

Add BSD license

Change-Id: Ia3d7a21144f85d7053601342ca7c7154426c81dd

Add BSD headers

Change-Id: I2f27888f58db095d7cf7132de080cab454097252

Remove incorrect license

Change-Id: I5f37ee73603877691022f6c55eefa4f676f79d96

Add Google 'not official product' disclaimer to READMEs

Change-Id: Ifafa4fc8148f6a2268068b93c40664b85fe23257

Link to project documentation from READMEs

Change-Id: Iaeec43aea9c779a58bf08d29cf1c077b21ba4f88

Rename ibis crates to match parent project

Change-Id: I1c316a6f1b9e269b5418a32560bc197d4cc61fbb

Fix up package naming

Change-Id: I896ffbd9128eb97de63c86991f64de0e0b198e76

Add implementation of Default for BiMap

Change-Id: Iee1e5d4dfaa5c156df808dcc38229be7cb34dcdd

Remove unnecessary clone

Change-Id: I06169e6018da552e7d4c05688e27c78d081fe880

Re-indent

Change-Id: Ifebf17235cdfe3ae80d936d89a6081a534944d0a

Add ibis workflows for CI

Change-Id: I788e7a669be2a77a8f10b50f61a150efb3b863bf

Fix yml syntax error

Change-Id: I8f62b047e13c3b1a056ff11dc44881526a5a35af

Rewrite jobs for WASM vs non-wasm due to github matrix limitation

Change-Id: I57b2c505171a51ff2ff0c7164015c1f2c09d96c5

Rewrite jobs for WASM vs non-wasm due to github matrix limitation

Change-Id: I6a49ab331e1b3cffd12727fa316ee495df0b61cc

Use Crepe from crates.io

Change-Id: Ic7b1b13dd715cc5b5e96f63060d4cf2c1c6ebfd7

Add lock file for Ibis to ensure good version specific caching and behavioural stability

Change-Id: I94c03bfd4a79814106287d4f78bee104efc6d4b3

Add wasmtime to test dependencies

Change-Id: I8d066cee4936a1d4adfe0b2646b9e2c9cb4c3d39

Lint fix: Clean up cross-module importing

Change-Id: I10015c21bbc2b94927aed71728b3dc8b80cf6688

Reindent & format

Change-Id: I01ae135d6eac47429c7ee9909b0f09fe489e130c

Set up PATH for wasmtime

Change-Id: I800bdb56cf858c22f7523f203891626cfe70cff7

Add build badge for Ibis

Change-Id: I058e4ec9f2b63526d69c3468558b88a2d11a6566

Fix unused imports

Change-Id: I824c9ddb3fb31d6409181ad0f62b4c35c4f7b62d

Add (empty) error type

Change-Id: Ie01ea3adfce13d030694dd4e71b10f09d288f6be

Add main binary to use for demos and testing

Change-Id: Iad558492053568cc48fccbdc3f2bff0ab17d7bf6

Add watch script that renders via dot and kitty

Change-Id: Ia598042d22618db403572991351355f45ed5bf09

Implement Ibis' to_dot graph

Change-Id: I9c4fcc8d09bc1a630f24927a26b70aee699e5137

Working ibis to dot demo

Change-Id: I92b85527b7e0bbb401977fe6b6c4869b74a8ae90

cargo fmt --all

Change-Id: I556a88d10320549b50f603da47b080f1ff294d82

Use a builder pattern to simplify the parsing code

Change-Id: Icfb8ea32324b1ab035f0fcfba10cf7212ddd6022

Add server command to watch script

Change-Id: I81281953497e338b79d6b3d4bc8f4777d69b1c65

Display links to a 'solution' node

Change-Id: I49e9930e15e53ee4008169d0ca923377025bc5d4

Better graph rendering

Change-Id: Ifcd63935946d31749b6f807d2d3c420e43e86a81

Handle particles and solutions as clusters

Change-Id: I87d03e1430623ba035e74892c258c51c9d96cb45

Better graph styling and displaying 'TrustedWithTag' annotations

Change-Id: I8b14d88dff2db9b7c211d7ade3af2f14cd0cdf2e

Add livereloading script to the watcher

Change-Id: Ib727641e6cb2d10ee845fa429f9f99184964290c

Improved debug display

Change-Id: Ia298bbcb4a6a457de26d77128e64e9ce6d39a0e3

Add serde_json for ArcsJs info injestion

Change-Id: I6495869aa04f58e8d26501a42305134d854cbc27

Fix for python server not shutting down properly

Change-Id: I18e02939f935a5253fd6c7d88ce6756e624b4398

Load demo from .json file

Change-Id: I7360bde89e66519bc768a61904233e209b1b8e88

Fix up reload to avoid flicker

Change-Id: Id522c221fb62f7ac2458a6fc4c16cdff3ec39b84

Move watcher files into watch directory

Change-Id: I346686c72cd8ee3a6b17acec9048f882ef914281

Fix order of operations in watch script

Change-Id: I2d4e0236b31a4e6224d57be1a3e81522febab669

Split up watch/index.html for clarity and better formatting

Change-Id: Ied6d702d0da1dfc164607c3305ec0806201683fe

Ignore watch/last.* as output of the watcher

Change-Id: I84b065f131fd67cdf23c07c7c44e603d3fb11207

Use html labels for nodes and display checks and claims info

Change-Id: Ie61908477e8cf32f8aa63e0b54c2adf892311652

Integrate serde with data structures to remove manual json handling code

Change-Id: Ib851156ef8edc96edacacd012f4378522dd4651e

Rename TrustedWithTag to TrustedToRemoveTag

Change-Id: I73bfb16448de92fe54d65fdd8d26bc7e2561d152

Add support for graphing the relationships between solutions graph

Change-Id: Ib808ea2f057974bc460a8a7179588492efab855e

More debugging info for displaying ancestors

Change-Id: I8ee7967dfaebba653d6d8d7ccb434a8893429413

Include graph as an svg object to make it searchable

Change-Id: Id6d3d64f9b67daaf07c9053696edffb856d6d1e8

Use div.innerHTML instead of URI encoded data for object and check for changes before reload

Change-Id: Ia58d0a3294dcd1ac057dd4dec45b5a2dbf208d17

Add type error detection (in pre-existing graphs) and start work to support seeding solutions from recipe data

Change-Id: I0e75913831736556b120d467824d8fad1da13ff8

Start writing a readme detailing Ibis' usage and tooling

Change-Id: I10d2a11fed872c37716a35859d848e5cd5efcd12

Reorder imports for linter

Change-Id: Iaa5762cb48e72ba7ca1fbb2baa7f59273ed5fae6

Cleanup stubbed out error file

Change-Id: I6e9f14d0631544783d93954f0564dbc91a00051e

Add BSD headers

Change-Id: Iada0043a04db0cdf4ffb62fd8ff4d86e80095881

Convert to use stdin

Change-Id: Ic02d613b0ed5ba6a8cb32ba4ca2db0c197921c2c

TMP - added

Use BTreeMap over HashMap (as BTreeMap supports ordering)

Change-Id: Ia120d5dd3cd0ec3226a4bc241e6fb974d3e586c0

Add map and bimap macros to mirror set

Change-Id: I0c219ad423161ff4f6981b5bf7c1b4caa8906fbc

Ensure util macros can be used throughout the crate

Change-Id: I7499b069f3b1f4a06f7efb8a50de3ddb42d4f074

Fixed for reading recipies models

Change-Id: I3f53194a18478a66e2d7d8a32c46d083eda588f0

Working towards a simplified Ibis model

Change-Id: I6c2b2a8c27be5672055f2b1787b4312b9f68c500

Clean up formatting

Change-Id: I476fcf39c7df20c06e763a16f66042644513afc7

Use helper function to clean up iterator manipulation

Change-Id: Ie037d3b793fbc78e08c176cb3c565fcf288258d0

TMP

Change-Id: I1727268b6c55aabf62c5d8010137cbe2bc05175f

Fixes for solution handling (assumes type checking and resolution one step and planning is another)

Change-Id: I0d4b2805c6473d48f5c62f53e8f8aa43b9e04b4c

Fix for unwanted caching in debug display

Change-Id: If5718aa5548245fe18784a79ec481f68550510f2

Add a 'is_trusted_to_remove_tag' helper function

Change-Id: Idadfe12c95e8c40f45af2c7fd07fedc71cca02aa

Use is_trusted_to_remove_tag data instead of predicate

Change-Id: Ic0b69945d9624c9eb6e04e9b8af5dc3cb170f27c

Clean up Less private than and HasTag rules

Change-Id: Id2ff6ee8fe6d475ac5f7491778a07c6efe7770c3

Add missing import of Check and Claim predicates from .json file

Change-Id: I2c0aaa3171b88f09669f9ffc932ba022f9a73b22

Set up only showing the 'best of' the passing recipies

Change-Id: I6c010c3c7bbbd829bcef01ec4d01a10e7d001adc

Demo pre-set edges

Change-Id: Ie4f93be38f4d941acbdb7c1e93b96db6e3873bc0

Reformat functional iterator code

Change-Id: Ia3de57923f120066a8a8ab9fe5d849f558be3a56

Fix up style changes and missing ancestors field

Change-Id: I6b2e51b42243f79b318156d9a5d0befd7fb47b5d

Small style fixes

Change-Id: I98d747d6d9f56c9d0e8de6cada739dbce19b966c

Add more APIs for getting all vs some results

Change-Id: Ic76af604c1908129d27caeb14ad3b0e8398c2321

Convert graph tests to use new Ibis

Change-Id: I445186486f812d77a2fbde9c3930b64089e1cad6

Fix off by one in recipies

Change-Id: I9bf0453b66cc439e08011082a6f5f777605ad571

Rewrite subtyping test to use recipies resolver

Change-Id: Ic69d7b30897b464a6e7934c185ac77e53bd97158

Move checks and claims test into dedicated test file

Change-Id: I195a44ff0cffd380b7027e38b4e58af00338950c

Clean up duplicated macro code

Change-Id: I66ad2b63b27daa2748524633fc444c8b4d773780

Add support for generic, inductive and universal types

Change-Id: Iada939bcb66ddf58a2b605835aa570f055fc8d0d

Update tests for generics

Change-Id: I39d139e2ed20dccd96bc668a7fdaf488ed833bf6

Formatting

Change-Id: Id97a78e50beb13910cd22f287738fcde347c44cb

Formatting

Change-Id: Ibe1324fa49a1264d1064284cdc7183069907089d

Clean up duplicated test code

Change-Id: I25bcb5ad35ed26ca30ce1bcf5d40aaaf9c64a57b

Gate dot graph generation to enable smaller release code

Change-Id: Ieaa1e77acff389a8c2a8ba8b0aaad83c2869240a

Move dot conversion code into separate module

Change-Id: I6af7043211143e0e5f4d21ba121482c3433fed16

Fix for unescaped dot symbols in node labels

Change-Id: I1a6b11715b0300ef40557db22150be0c3f26af48

Clean up util module

Change-Id: I9c9e3a59be23eeaf1b62f01efb78ed730c1a4312

Remove unused macros

Change-Id: If9328cc6c379bbaeb96e4c8a9c689f303ceaf4e8

Add missing license header

Change-Id: I4e5a937679dd4673bfb94cda0faba033b0a5c358

Move make function into util module

Change-Id: Ib93dacb9c3c5c6d2ace131d07239b51b842f76d2

Format make function

Change-Id: I98264ba83c8e03ea040a930a78ff9c6e3f392e18

Remove unused file

Change-Id: I00ae10265b0b8c16485446a33e47dc6241ed1bb1

Add missing license header

Change-Id: I4e5a937679dd4673bfb94cda0faba033b0a5c358

Move make function into util module

Change-Id: Ib93dacb9c3c5c6d2ace131d07239b51b842f76d2

Format make function

Change-Id: I98264ba83c8e03ea040a930a78ff9c6e3f392e18

Add support for multiple arguments to apply macro

Change-Id: I689c9c0aa966cc9e5d76f8b01e928a0500ceefc7

Improvements to entity macros

Change-Id: Ie50132605416bf1cd76013a3264362eae26efa34

Remove ibis 'atom' support as it is unused

Change-Id: Ia8b87cd1368cd4849b7c0fdc0d21e537cf329635

Add parsing support

Change-Id: I24a3b8a4b2188134e206bb8a70671936243f1815

Formatting

Change-Id: Iedf7d3090d927cfd33dc06b148f44acbac8da9ac

Lints

Change-Id: Ib76ac8ba3f1562af1b62fda3268b8bca1ad06f9c

Add parsing support

Change-Id: Idbfdeedb4ac291186fa786cf27ac55be848cbf38

Use &str for Type structure to avoid copying

Change-Id: I709194059000b37ebfd0848194da95ce421c17c9

Use tuples for clearer parser code

Change-Id: I497cfd4b9ba6da305fc2556bbd607afb61b477e9

TMP

Change-Id: If435d4946fc63975641cfbe73c85c40499c38d03

Update tests for capabilities

Change-Id: I4bdf9f61fcc70505a0b0c1b75ece92316aa4cc8b

Format

Change-Id: I0a7a2c2a75db8af38143bf08744d582bb859fed6

Update comment

Change-Id: I1c724cbee3784ad1c93c73f4e6ba42d7bb6c290d

Ignore default values when serializing

Change-Id: Ic71d3f8f68a11109c3e367580e498e5b0d6468b6

Fixes for product types and add product type tests

Change-Id: I90dc9497a3cedbbb6ce5efa45e83518fc1131062

Format

Change-Id: Id7240281c054ea541a196b3206b79d4189997d9e

Further Product type test

Change-Id: I17720175679b18ec9e552a6674d2835c5a866c8c

Format

Change-Id: If0efd9042ccf12fd68f5edeeec6fdce4b8d05f94

Reserve colon for labelling, switch 'box' to 'dot' (i.e. :: to .) for namespacing

Change-Id: Ica14817f1e3ad53dbcf18359a87429f4fbbe1977

Rename Type relation to KnownType for clarity

Change-Id: I4c225dc7492660ae2190ea7c9c28b668080b5da1

Add support for labelled type sugar in parser

Change-Id: If164092c2902274749b0a96f6930d2e64b587872

Remove entity syntax from demo

Change-Id: I63880616b398482ab6b46bde1eb5c079e7b022a6

Clean up duplicated macro code

Change-Id: If29adcf1bac1427835b6b5b4a81917a4bbef99e5

Fix untyped label

Change-Id: I8d0a32f125a892c89a729d607235d497520fffbb

Support for labelled types

Change-Id: I0adfb158c306bb3c6cf42d772865a73f0cb75b03

Formatting

Change-Id: I32d8ab5e209e0ec0a75bd72dff5c4aeea48c9830

Unnecessary borrow

Change-Id: Ice9007cb70b58f18472168b51e9de866a1b321b8

Support for union types (#12)

Change-Id: I03ae91cf8c804355e66c499d8d752a12bed38b4d

Sugar for universal type (#13)

* Add syntactic sugar for the Universal Type
* Fix for is_a macro not understanding parsed types
* Formatting
* Output using syntactic sugar

Sugar for universal type (#14)

* Use union type in demo
* Prove that the demo can run via wasm
* Remove unused type definitions

Generate and make use of a wasm binary artifact (#15)

* Clean up API functions
* Partial construction of running ibis from JS
* Ensure panic hook is set
* Demo wasm runner in watch's console.log
* Add upload artifact step
* Lint fixes
* Update tests to use renamed get_solutions
* Make get_solutions pub for tests
* Remove wasm tests from CI as the wasm build now needs wasm-bindgen

Fix spelling mistake recipies for recipes (#16)

Change-Id: Ic1cdf770c48c46d739caee9bbfb7dcb965b4ddba

Use npm's http.server to support concurrent connections and use a panic hook for better errors (#17)

Change-Id: I567fcb634bd0b5af815b32ac30508f73210058fc

Update Cargo.toml for wasmpack (#18)

* Update Cargo.toml for wasmpack
* Add LICENSE file to ibis directory

Benching demo (#19)

* Add benchmark and add a 'submit' button to playground for better timing information
* Add round trip test
* Reorder selectors for slight performance improvement
* Fmt

Clean up solution data (#21)

* Remove pkg
* Move recipe data into the top level Ibis runtime
* Fmt
* Fix From<Recipe> instance for Sol

Add missing licenses (#22)

Prune_leakers (#20)

Reorder checks and use edge ennumeration made possible in ekzhang/crepe#17 for an expected performance improvement of -31%

* Use edge iteration to marginally improve performance
* Propagate tags for edges, not all nodes that have an edge
* Check Type and Capability errors on each edge, not each node

Add flags and benchmark for non-planning checking (#23)

* Add flags and benchmark for non-planning checking
* Remove derivable default impl

Include failing recipes when not planning (#24)

Change-Id: I00784a935b4b2b4a0a6d29cb4927bc87082b9f84

Include version information in output to aid in debugging (#25)

* Add version information to output for debugging
* Fix up wasm support for playground

Reorganise benchmarks and add noop-planning (#26)

Change-Id: I61ff1d8ddcae2c99f74ef2ee2ba6b5da7d30c794

Stratify checking and clean up benchmarks (#27)

* Reorganize benchmarks and add noop-planning
* Report solutions stats in output summary

Improve handling of feedback in de-serialization (#28)

* Improve handling of feedback in de-serialization

Auto pages (#29)

* Add playground link
* Add github action for uploading pages

Set up identity (#30)

Cache pkg and deploy using pages branch (#31)

Fix typo (#32)

Use deploy action

Fix duplicated solutions with different ids (#34)

* Fix duplicated solutions with different ids

Split into json and dot outputs and fix round trip parsing bug (#35)

Cache wasmpack (#36)

* Use wasmpack action

Fixed shared recipe data handling (#37)

* Turn 'empty' into a normal solution
* Fix up shared recipe handling

Improve collection of recipes when using shared (#38)

Use URI for playground instead of relative path

Dot in playground (#53)

* Add simple dot output to playground
* Remove (not unused) watch scripts

Fixes for to_dot impls (#54)

* Fixes for to_dot impls

Use vis.js to render dot in playground (#56)

* Fixes for to_dot impls
* Vendor Viz.js code in playground
* Add changes to use Viz.js
* Use third_party dir

Add rust doc output to pages (#58)

First attempt at adding rustdoc to github pages. This is a step towards #46

Fix typo (#59)

Fix a second typo (#60)

Update documentation to link to Ibis' rustdoc (#61)

Update readme with links and dev tools (#62)

Update index.html

Fix up doctype html

Add support for multiple files and multiple outputs (#63)

* Add support for handling multiple files
* Remove unused css and widen the input file frame
* Add a 'clear output' button
* Start writing a wrapper for ibis for ArcsJs
* Catch, report and rethrow exceptions for client code to respond to
* Re-render dot output on tab switch

Create benchmarks for useful idioms that Ibis uses (#65)

* Create benchmarks for useful idioms that Ibis uses

This PR adds a benchmark to check that two different approaches to constructing new vectors, perform similarly (to ensure Ibis continues to use the more performant or more readable idiom).

Harden dot output against nodes with dots in their names (#66)

Change-Id: Id48b2971e6c003870dc961c04506b3571f40e59e

Introduce utility method for checking if a type subtypes another (#67)

Change-Id: If51256f46eac68607e99e157f8a6eab74bea2f41

Add d.ts file (#68)

Change-Id: I17b8d9644150c0fad4045844672acf7365da87e1

Add d.ts file (#69)

Change-Id: I17b8d9644150c0fad4045844672acf7365da87e1

Capability types (#70)

* Read sugar for product types

* Fixes for nested types and round trips (handling parens)

* Update tests to use merged capability and type

* Add support for capabilities in type structures

* Update to_dot impls for merged capability & node type

* Update demo for merged capability and node type

* Use or_else and reorder for clarity

* Show JSON in error and also update tests

* Add ebnf doc

Parser cache (#71)

* Use String over &str to avoid lifetime issues
* Add cache for parsing types

Use consts for commonly used type names (#72)

* Use consts for commonly used type names

Use crepe only (#74)

* Clean up Type constructors

* Remove ibis macro

* Ignore false positive lint due to crepe macro

Avoid clones (#73)

Add licenses (#75)

Use subtyping on capabilities (#76)

Capabilities are types

Quick fix for dot output (#77)

* Fix dot output

Fix dot (#78)

* Aggregate tag sources
* Fix directions in chromium demo
* Fixes for dot and tag prop
* Prettier dot output
* Avoid clone and format

Major usability improvement in storing the inputs in URI params (#79)

Change-Id: I27d3d8131266c061ee3f7241e33a4747ca3487ba

Improve URI searchParam handling (#81)

Change-Id: Id058438e8c339975bee98ebcee222447d4f49c4c

Std libs (#80)

* Add a rough model of the typescript type system
* Add a rough model of the ArcsJs type system
* Add a rough model of the Rust type system

Add UI for upload, download and sharing (#82)

* Add a share button and make filePanes control their own deletion of files
* Clean up output panes into dot and json
* Update checking.json
* Show source JSON in JSON Error message
* Add an 'upload' file button
* Add downloading files and file extension support
* Add download button and fix button order
* Fix paths
* Working towards loading multi-file demos
* Fix lint
* Fix width of text pane... somehow
* Label and hide empty filePanes with no add button

Add missing edge

Change-Id: I5a6bbea6a9c7b0c03e39af839c106178cba23228

Add quill demos (#83)

Change-Id: I058d55032361a3937dcc2a25629ab01c7ca4a5f4

Rename ibis pages workflow (#84)

Change-Id: I5cf2a6bf0b8d7eec7f06c2247db2bd9da3677b65

Update workflow config to be robust to branch deletion (#85)

* Rename ibis pages workflow
* Add clean-exclude option to make pages more robust
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant