8000 Comparing v0.1.2-c...v0.2.1 · omar-azmi/tsignal_ts · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: omar-azmi/tsignal_ts
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v0.1.2-c
Choose a base ref
...
head repository: omar-azmi/tsignal_ts
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v0.2.1
Choose a head ref
  • 14 commits
  • 36 files changed
  • 2 contributors

Commits on Oct 19, 2023

  1. in context.ts's Context, implement:

    - `delEdge`: edge deletion
    - `delId`: signal id deletion, along with updating its dependency and observer signal ids
    - `swapId`: for swapping two signals (using ids) with each other
    new code's functionality has not been tested yet
    omar-azmi committed Oct 19, 2023
    Configuration menu
    Copy the full SHA
    b4711ac View commit details
    Browse the repository at this point in the history

Commits on Oct 20, 2023

  1. fix the incorrect implementation of Context.swapId with a much simp…

    …ler and quicker implementation
    
    call `ids_to_visit_cache_clear` where it ought to be called after a mutation in dependency tree has been made
    `Context` now also provides a `clearCache` method for clearing the dependency tree visit ids cache
    add a test for `Context.swapId` and `Context.delEdge` in `./test/context.test.ts`
    bump patch version to `0.1.3`
    omar-azmi committed Oct 20, 2023
    Configuration menu
    Copy the full SHA
    6a5cab6 View commit details
    Browse the repository at this point in the history
  2. fix old test that was failing

    change how `EffectSignal`s react to new observers:
    - old behavior: rerun effect fn for every new observer
    - new behavior: only run effect fn if this effect signal itself has never run before, and the observer is a new (not untracked) observer
    omar-azmi committed Oct 20, 2023
    Configuration menu
    Copy the full SHA
    f7881b1 View commit details
    Browse the repository at this point in the history

Commits on Oct 26, 2023

  1. Context.addEdge now skips adding edges if any of either ids is zero…

    … or negative (i.e. untracked)
    
    temporary backup the new `primitive_signal.ts` before rehauling
    omar-azmi committed Oct 26, 2023
    Configuration menu
    Copy the full SHA
    4376b9c View commit details
    Browse the repository at this point in the history

Commits on Feb 16, 2024

  1. add test file simple_signal2.test.ts, which shows that my current w…

    …ay of traversing in `Context.fireUpdateCycle` and `Context.propagateSignalUpdate` are not ordered topologically.
    
    - expected traversal: A, B, D, G, C, E, H, F, I, J
    - actual traversal: A, B, D, G, C, E, H,I, J, F
    - reason: F gets skipped in the middle because it is already visited once from either B or D, but its resolution is delayed because of unvisited dependencies C and E. however, when C and E are visited, they propagate forward to H and then I. in I's perspective, F has been resolved, since it has been visited. however, the reality is that while it has been visited, it was awaiting dependency resolution of C and E, and it hasn't been resolved yet. the forward propagation model is indeed problematic. you should either stick backward resolution or forward propagation, but not both at the same time.
    omar-azmi committed Feb 16, 2024
    Configuration menu
    Copy the full SHA
    3eff039 View commit details
    Browse the repository at this point in the history
  2. fixes update cycle is not topologically ordered #4

    changes:
    - `ids_to_visit_cache_create_new_entry` now generates the list of ids to visit in topological visitation order, while also maintainin that the original source ids are always at the beginning, which is an important piece of info used for a micro-optimization by `fireUpdateCycle`
    - each cycle we maintain two dynamic book-keeping sets:
      - `next_to_visit_this_cycle`: which unvisited ids **must** be visited later on (since one of their dependencies have updated)
      - `not_to_visit_this_cycle`: which ids have been declared as aborted by one of their dependencies. (and therefore must never run)
    - `fireUpdateCycle`: traverses through the topologically ordered set of ids, executing the signals one-by-one, updating the 2 book-keeping sets, checking of the possiblity of early termination, and then finally running all `postrun`s
    - `executeSignal`: simply runs the `run` method of the retrived signal, and stores any `postrun` functions it may contain, then returns the update status of the singnal's `run` method
    - add documentation to a bunch of inner functions of the `Context`
    
    improvements:
    - the cycle also runs MAD faster now, since we are no longer having to retrieve dependencies of each newly visited ids via `rmap_get` hashmap table.
    - for comparison, the benchmark test 2 and 3 in `/test/simple_signal.test.ts` have decreased their average run time to:
      - `"test cached performance"`: from 200ms to 70ms
      - `"test uncached performance"`: from 650ms to 160ms
    omar-azmi committed Feb 16, 2024
    Configuration menu
    Copy the full SHA
    82ce80d View commit details
    Browse the repository at this point in the history
  3. - bump minor version to 0.2.0

    - update dependencies:
      - `kitchensink_ts`: `v0.7.2` -> `v0.7.3`
    - fix typos across repo
    omar-azmi committed Feb 16, 2024
    Configuration menu
    Copy the full SHA
    6ef4118 View commit details
    Browse the repository at this point in the history

Commits on Feb 17, 2024

  1. add actual content to readme, and a reactivity exmple as well (`/test…

    …/rectangle_boundingbox.ts`)
    omar-azmi committed Feb 17, 2024
    Configuration menu
    Copy the full SHA
    78bedfb View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    3c373dd View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    4d71b47 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    994bfba View commit details
    Browse the repository at this point in the history
  5. add a proper license.md

    add newer github wrokflow files adapted from `kitchensink_ts@v0.7.3`
    omar-azmi committed Feb 17, 2024
    Configuration menu
    Copy the full SHA
    be65537 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    1e0c60a View commit details
    Browse the repository at this point in the history
  7. bump patch version to 0.2.1

    add vscode workspace setting config files
    format all files and organize imports
    ready for `v0.2.1` release
    omar-azmi committed Feb 17, 2024
    Configuration menu
    Copy the full SHA
    de0f8dd View commit details
    Browse the repository at this point in the history
Loading
0