Skip to content

Reactivity #147

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 203 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
203 commits
Select commit Hold shift + click to select a range
fbcaced
chore(streams): add draft how streaming could look like
plusgut Dec 8, 2021
44c5a75
fix(streams): improved todo example with stream implementation
plusgut Dec 9, 2021
c132f05
fix(context): add context component
plusgut Dec 9, 2021
46ac10b
fix(streams): add missing function declaration slash
plusgut Dec 9, 2021
3bc5fc3
fix(streams): add missing function declaration slash
plusgut Dec 9, 2021
f4c3e15
fix(streams): add missing stream declaration slash
plusgut Dec 9, 2021
b31abc4
fix(streams): refined syntax for streaming
plusgut Dec 10, 2021
e63f50b
fix(streams): change fetch handling
plusgut Dec 21, 2021
c2866be
fix(streams): change to new tuple syntax
plusgut Dec 22, 2021
74a73a0
feat(types)!: add data keyword for creating adb
plusgut Dec 26, 2021
ecefba4
feat(each): rechanged to each control flow
plusgut Dec 27, 2021
b93ffdb
fix(test-components): improve naming
plusgut Dec 28, 2021
9b90975
feat(adt): add data group name parsing
plusgut Jan 5, 2022
d03c5b1
feat(adt): add data declaration parsing
plusgut Jan 5, 2022
5a379ce
feat(indentation): added simple indentation handler
plusgut Jan 6, 2022
d903c69
feat(indentation): improve line-break handling
plusgut Jan 6, 2022
08e0c9c
add(indentation): add indentation parser
plusgut Jan 12, 2022
a22712d
fix(indentation): improve indentation parsing
plusgut Jan 13, 2022
abcada2
fix(indentation): save indentation
plusgut Jan 13, 2022
c4c7dda
chore: add shorthand parser for parsing structured elements like reco…
plusgut Jan 13, 2022
51c91f8
feat(operator): implement operator handling
plusgut Jan 13, 2022
b2eafc3
feat(let): add letParser
plusgut Jan 13, 2022
3a51e7b
feat(condition): add condition-handling
plusgut Jan 14, 2022
8fcf765
feat(expression): added dot notation to express nested expressions
plusgut Jan 15, 2022
a230cc4
fix(indentation): improve indentation parsing
plusgut Jan 16, 2022
72da504
chore(indentation): remove stateT from parser
plusgut Jan 16, 2022
09ca08e
feat(block): impove block parsing
plusgut Jan 22, 2022
cd8bfbc
feat(indentation): implement indentation handling
plusgut Jan 25, 2022
c821ca5
feat(style)!: stylesheets are now not inlined anymore but externalized
plusgut Jan 25, 2022
ffb8fe4
feat(function)!: streams are now lets with arrow, that in turn made f…
plusgut Jan 25, 2022
2695ca9
fix(indentation): implement endParser properly for indentation-block
plusgut Jan 26, 2022
00a9942
chore(token): add tokenizer parsers
plusgut Jan 27, 2022
425417e
feat(function-call): implement functioncall parsing
plusgut Jan 27, 2022
d9c711a
feat(each)remove each control-flow
plusgut Jan 27, 2022
9b46d31
fix(adt)!: change to [] syntax
plusgut Jan 27, 2022
bac8294
feat(number): add number and range parser
plusgut Jan 28, 2022
d746f6b
feat(host): add host parser
plusgut Jan 28, 2022
a25a1b4
feat(record): unified record and list parser, basedOn part are statem…
plusgut Jan 28, 2022
4610c79
feat(indentation): indentationParser consumes eols
plusgut Jan 30, 2022
56ae56e
feat(lefthandside): add hole parser
plusgut Jan 30, 2022
7db3915
feat(children): host children parsing
plusgut Jan 30, 2022
41d670c
feat(records): add conditional parsing
plusgut Jan 30, 2022
b39a726
feat(model): simplified model usage
plusgut Jan 30, 2022
74044a6
fix(todo): fix toggling value
plusgut Jan 30, 2022
0324b33
fix(todos): made example more semantically correct
plusgut Jan 30, 2022
58bda0d
emitter(adt): add algebraic data type constructors
plusgut Jan 30, 2022
b7bfdae
emitter(emitter): improve formatting
plusgut Jan 30, 2022
3f00d15
chore(tests): remove unneeded props parameters
plusgut Feb 1, 2022
be64328
feat(props)!: props are not parameter, but a parameter
plusgut Feb 1, 2022
a59e13a
feat(rootAssignment): implement root assignment
plusgut Feb 4, 2022
04d2902
feat(expression): add expression handling
plusgut Feb 4, 2022
f1e0007
feat(data-declaration): add nested data-declarations
plusgut Feb 4, 2022
40c474b
fix(props): made props parameter again, instead of streams
plusgut Feb 7, 2022
900bb9b
chore(emitter): fix naming for code generator
plusgut Feb 7, 2022
e27c5fc
feat(match): add match parser
plusgut Feb 7, 2022
b0d60fc
feat(parser): add rest for list
plusgut Feb 7, 2022
8817330
feat(view): improve variable handling
plusgut Feb 13, 2022
b744ee7
fix(testsuite): fix test suite and tests
plusgut Feb 13, 2022
90d4d55
feat(emitter): add static text emitter
plusgut Feb 15, 2022
d99319e
feat(variable): add primnitive variable handling
plusgut Feb 15, 2022
ca99823
feat(view): improve viewresult handling
plusgut Feb 15, 2022
a1bb1dd
feat(emitter): setter are now being generated
plusgut Feb 15, 2022
6b6bd2f
fix(scope): add scoping for element variables
plusgut Feb 18, 2022
83703b7
feat(text): text updating works
plusgut Feb 18, 2022
2ddfa43
feat(host): add tests for hostmanagement
plusgut Feb 18, 2022
bc64629
feat(host-attributes): add host attribute handling
plusgut Feb 18, 2022
69d2109
feat(host): add input-type handling
plusgut Feb 18, 2022
59b3d7c
feat(types)!: add syntax for types
plusgut Feb 21, 2022
6f3c510
feat(type): added type information for components
plusgut Feb 22, 2022
332cab3
chore(kinds): renamed types to kinds
plusgut Feb 24, 2022
c71a777
feat(type): add root typealias definition
plusgut Feb 24, 2022
f997c89
feat(type): add type parsers
plusgut Feb 24, 2022
35ce2ca
fix(types): add temporary types to compiler
plusgut Mar 4, 2022
0843d57
feat(types): add typechecker
plusgut Mar 27, 2022
e75a1b4
fix(indenter): fix linebreaks in indenter
plusgut Mar 27, 2022
edb5ec6
feat(render): add basic render-chain
plusgut Mar 28, 2022
28bfaa0
feat(type): move view handling to expression emitter
plusgut Apr 3, 2022
1b803fa
fix(example): remove quirks
plusgut Apr 6, 2022
c4e604c
feat(text): add static text handling
plusgut Apr 7, 2022
557db99
feat(view): add sibling and children handling
plusgut Apr 8, 2022
b3f681f
fix(view): sibling handling
plusgut Apr 8, 2022
b19b640
fix(view): sibling handling in empty case
plusgut Apr 8, 2022
ab237a4
feat(properties): add property-handler
plusgut Apr 8, 2022
5f37307
fix(todo): fix typeissue in example
plusgut Apr 9, 2022
347343a
fix(todo): add missing semicolon
plusgut Apr 9, 2022
b2199e6
feat(stack): improve stack handling
plusgut Apr 14, 2022
17fd531
chore(prelude): add prelude handling
plusgut Apr 19, 2022
8f6e104
feat(props): start property handling
plusgut Apr 20, 2022
d78eb7b
fix(scope): corrected scoping
plusgut Apr 20, 2022
524a65f
feat(properties): added property setter based on types
plusgut Apr 20, 2022
4770bbf
feat(properties): add dependencyhandling
plusgut Apr 20, 2022
180d242
feat(host): added attribute handling for host elements
plusgut Apr 21, 2022
5360f23
fix(tests): temporarily disabled input-tests
plusgut Apr 21, 2022
14044d7
fix(test): fix syntax errors in test-components
plusgut Apr 22, 2022
fc355b9
feat(condition): add condition handling in view
plusgut Apr 24, 2022
38657d6
chore(expression): simplify function signature
plusgut May 2, 2022
4a1e82e
feat(function-handling): function handling implementation
plusgut May 7, 2022
334753f
feat(function-handling): parameter handling
plusgut May 7, 2022
03887dc
fix(boolean): fix boolean handler copypasta
plusgut May 7, 2022
9d45289
feat(expression): improve expressionhandling
plusgut Jun 5, 2022
7dc48d8
feat(expression): add expression merging possibility
plusgut Jun 5, 2022
3df13d2
feat(types): typings for functions are applied in explicit typing
plusgut Jun 5, 2022
8e072c9
chore(input): disabled input event handling tests
plusgut Jun 5, 2022
e8980a3
feat(opeator): add monad to expressionhandler for operator-handling
plusgut Jun 10, 2022
650255b
feat(operator/number): add opeator and number handling
plusgut Jun 10, 2022
dbda8ce
feat(list): add list handler
plusgut Jun 10, 2022
8543ac7
feat(algebraicdatatype): add stackandler for algebraicdatatypes
plusgut Jun 11, 2022
5694d85
feat(list): preparation for view streaming implementation
plusgut Jun 11, 2022
aace0e9
feat(type): improve typehandling
plusgut Jun 16, 2022
c91802c
feat(type): improve stackvalue handling
plusgut Jun 16, 2022
fa2b721
fix(function-application): function parameter stack handler
plusgut Jun 17, 2022
7531c38
fix(parameters): fix lefthandside handling
plusgut Jun 17, 2022
3f62376
Merge branch 'main' into streams
plusgut Jun 23, 2022
52a60cf
chore(prelude): remove prelude module
plusgut Jun 24, 2022
0c8b804
feat(range): add tuple and range handling
plusgut Jul 5, 2022
963d8bc
feat(destructuring): add destructuring ability
plusgut Jul 17, 2022
c9b04b4
feat(import): add importing of used features
plusgut Jul 18, 2022
24cb017
feat(test): improve testcases
plusgut Aug 21, 2022
81737e6
feat(macro): add macro emitter for webcomponent
plusgut Nov 6, 2022
c0f02c4
chore(refactoring): renamed all parsing types
plusgut Nov 6, 2022
397e0b2
feat(macro): add parser for macros
plusgut Nov 8, 2022
9dfd562
feat(prelude): add base for prelude and macro handling
plusgut Nov 8, 2022
b38e5f2
fix(macro): fix macro parser
plusgut Nov 8, 2022
dd480e2
chore(root): improve some type naming
plusgut Nov 9, 2022
e90bb62
feat(macro): add webcomponent registry
plusgut Nov 9, 2022
e0721ac
feat(webcomponent): add basic structure to webcomponent
plusgut Nov 10, 2022
3903cde
chore(test): only run host tests
plusgut Nov 10, 2022
68a1b4c
fix(cli): add path normalization
plusgut Nov 10, 2022
f155ad2
fix(webcomponent): add shadow-mode
plusgut Nov 10, 2022
73975d0
feat(adt): add algebraic data type declaration
plusgut Nov 11, 2022
f6c5816
feat(nix): add dependency handling
plusgut Nov 17, 2022
7ac6748
Merge branch 'macros' of github.com:strictly-lang/compiler into macros
plusgut Nov 17, 2022
ca0306b
feat(parser): add grouping of root nodes
plusgut Nov 20, 2022
9d446c2
feat(prelude): add javascript prelude handling
plusgut Nov 26, 2022
acee0c1
feat(flake): add flake build step
plusgut Nov 26, 2022
4a5cc3a
fix(nix): improve handling of build result
plusgut Nov 26, 2022
b0314f1
fix(node): remove cabal reference in testing
plusgut Nov 27, 2022
3c13453
feat(ci): add ci with nix shell
plusgut Nov 28, 2022
4dd4ac5
fix(ci): fix paste error
plusgut Nov 28, 2022
27fc150
feat(types): started to engrain typechecker to emitter
plusgut Nov 28, 2022
4beca80
feat(emitter): add string emitting
plusgut Dec 3, 2022
2e0f1e7
feat(host): add basic host creation
plusgut Dec 3, 2022
5c35bcc
feat(direnv): add result/bin to /home/plusgut/projects/strictly/packa…
plusgut Dec 4, 2022
a5a07db
feat(typechecker): add typecontext handling
plusgut Dec 4, 2022
df7d660
feat(emitter): add monad statehandling
plusgut Dec 4, 2022
947cee4
feat(string): improve string dom handling
plusgut Dec 5, 2022
0fa67d1
feat(emitter): add proper type for emitting render results
plusgut Dec 5, 2022
2de4e78
fix(renderPattern): render patterns should throw error in case expres…
plusgut Dec 5, 2022
5f38305
chore(emitter): improve imports
plusgut Dec 5, 2022
6f37a53
flake.lock: Update
plusgut Dec 5, 2022
b2d46ab
feat(typechecker): add type definition
plusgut Dec 5, 2022
3671157
feat(destructure): add basic destructure api
plusgut Dec 5, 2022
cb34b38
chore(expression): improve expression handling
plusgut Dec 12, 2022
dee464a
feat(dynamic-text): made dynamic text work at creation
plusgut Dec 12, 2022
745e3fd
chore(expressionhandling): preparations for dependencymanagement
plusgut Dec 12, 2022
d742cc8
feat(expression): made expressions updatable
plusgut Dec 13, 2022
86a08b5
chore(test): readded testcases
plusgut Dec 14, 2022
22462b8
feat(host): add host expression handling
plusgut Dec 14, 2022
dec8fc3
feat(expression): parameter handling for function expression
plusgut Dec 15, 2022
d3fb744
feat(expression): add variableStack to function definition
plusgut Dec 15, 2022
e7f4305
flake.lock: Update
plusgut Dec 15, 2022
a417e74
feat(expression): add function application improvements
plusgut Dec 15, 2022
d0f0a59
feat(function): add function call
plusgut Dec 16, 2022
7e31be4
feat(function): function application gives parameter
plusgut Dec 16, 2022
4d72ec7
chore(test): disable tests for input-form-elements
plusgut Dec 16, 2022
dd46eb2
feat(condition): made preparations for condition handling in dom
plusgut Dec 17, 2022
f94a6c5
feat(condition): implement condition handling inside dom
plusgut Dec 17, 2022
8657b42
chore(condition): remove some unnecessary braces
plusgut Dec 17, 2022
a2b8e71
chore(linebreak): remove unneeded linebreaks
plusgut Dec 17, 2022
a4438ec
feat(expression): preparations for list handling
plusgut Dec 18, 2022
97cd6bd
feat(number): add operator handling to number
plusgut Dec 18, 2022
b0882ef
feat(model): remove model state abstraction, and give direct access t…
plusgut Jan 8, 2023
2d58f22
fix(model): add missing assignment
plusgut Jan 8, 2023
596709d
feat(fetch): add generic to fetch macro
plusgut Jan 8, 2023
9a3231a
flake.lock: Update
plusgut Jan 21, 2023
0c13770
feat(typechecker): implement typechecker
plusgut Apr 9, 2023
32cd85b
feat(reactivity)!: add reactivity syntax
plusgut Apr 9, 2023
e391139
feat(update): updated dependencies
plusgut Apr 16, 2023
62e72a1
fix(typedgrouping): implement grouping of statements
plusgut Apr 16, 2023
6f1df42
feat(group): adding grouping
plusgut Apr 16, 2023
24e573f
chore(grouping): refactor to dedicated file
plusgut Apr 16, 2023
8b05976
chore(grouping): typecheck
plusgut Apr 17, 2023
7cb72df
feat(typechecker): implement typehandler finder
plusgut Apr 17, 2023
1040405
feat(typechecker): improve typechecking ability
plusgut Apr 18, 2023
2b2ebf9
feat(typechecker): added plumbing with javascripttypehandler
plusgut Apr 18, 2023
f1e0b74
feat(function): added function typechecking
plusgut Apr 20, 2023
ac9380a
feat(function): add function expression
plusgut Apr 21, 2023
4070361
feat(emit): added emitter for webcomponent
plusgut Apr 21, 2023
53cd3c3
feat(webcomponent): fix syntax error
plusgut Apr 22, 2023
5254562
feat(emit): calling main render function
plusgut Apr 22, 2023
722e8c3
feat(emitter): add inline handling
plusgut Apr 23, 2023
8a203c8
feat(abortcontroller): added abortcontroller
plusgut Apr 27, 2023
a5ded66
chore(rust): init rewrite in rust
plusgut Apr 28, 2023
48a3cb2
feat(wit): add temporary wit file
plusgut Apr 29, 2023
48785ba
feat(rust): made rust with wasi available
plusgut Apr 29, 2023
82907ac
feat(cli): added basic cli capability
plusgut May 1, 2023
16b1b37
feat(cli): add cli handling
plusgut May 2, 2023
3725bb5
feat(salsa): added basic salsa structure
plusgut May 9, 2023
7886551
feat(db): instantiate database
plusgut May 11, 2023
7ef88c2
feat(parse): plumbing db parser and ir together
plusgut May 27, 2023
e4cbad6
fix(example): improve indentation of todo-app
plusgut Jun 13, 2023
30d16d6
chore(update): updated flake and cargo-dependencies
plusgut Aug 5, 2023
1a9c668
fix(haskell): remove unneeded haskell files
plusgut Aug 6, 2023
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
2 changes: 2 additions & 0 deletions .envrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
use flake
PATH_add result/bin
5 changes: 0 additions & 5 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,3 @@ updates:
directory: "/"
schedule:
interval: "daily"

- package-ecosystem: "gitsubmodule"
directory: "/"
schedule:
interval: "daily"
68 changes: 6 additions & 62 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,68 +10,12 @@ on:
jobs:
build:
name: Test
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
include:
- os: ubuntu-latest
EXE: strictly
PLATFORM: linux-x64
- os: macos-latest
EXE: strictly
PLATFORM: macos-x64
# - os: windows-latest
# EXE: strictly.exe
# PLATFORM: windows-x64
runs-on: ${{ matrix.os }}

steps:
- name: Check out source code
uses: actions/checkout@v2
with:
submodules: recursive

- uses: haskell/actions/setup@v1

- uses: actions/setup-node@v2

- name: Install Dependencies
run: yarn install

- name: Test
run: yarn run test

- name: Build
run: cabal install exe:strictly --install-method=copy --overwrite-policy=always --installdir=dist

- uses: actions/upload-artifact@v2
with:
name: ${{matrix.PLATFORM}}
path: ./dist/${{matrix.TARGET}}
if-no-files-found: error

release:
name: release build
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }}
runs-on: ubuntu-latest
needs: [build]
steps:
- uses: actions/checkout@v2
with:
token: ${{ secrets.GITHUB_TOKEN }}

- uses: actions/download-artifact@v2
steps:
- uses: actions/checkout@v3
- uses: cachix/install-nix-action@v18
with:
path: dist

- name: Executable
run: chmod -R +x dist/

- name: Install Dependencies
run: yarn install

- name: Release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
run: npx semantic-release
extra_nix_config: |
access-tokens = github.com=${{ secrets.GITHUB_TOKEN }}
- run: nix shell -c sh -c "yarn install && yarn run test"
4 changes: 2 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
/dist
/dist-*
/result
/node_modules
/target
3 changes: 0 additions & 3 deletions .gitmodules

This file was deleted.

Loading