Giter VIP home page Giter VIP logo

Comments (10)

emil14 avatar emil14 commented on May 26, 2024 1

Strong type system

Introduce some complicated type system that will be able to figure out complex cases for even operators.
Especially it must answer the question - how many port elements this operator will use?

from neva.

emil14 avatar emil14 commented on May 26, 2024 1

Only N:N

Allow arr-ports and outports to be only 1:1 inports to outports

Problem

TODO

from neva.

emil14 avatar emil14 commented on May 26, 2024 1

Default/empty values

Always use all the outports but send some empty values to the ones that are not needed.

Example: p1, p2, p3 -> router -> r1, r2, r3, r4. There is no value for r4 but router will send some default value there

Problems

  • Computations without any sense

from neva.

emil14 avatar emil14 commented on May 26, 2024

Array bypass solution

Just forbid array outport indexing and introduce new type of port reference / connection - "array bypass".
It must be used when we want to connect some array-outport with some array-inport.
Both part of the connection must be array-ports.

Problems

  • Makes hard to implement routing #38
  • Impossible to send specific elements to nodes inports (use normal ports for that?)
  • Could be hard to compute port elements count #41

from neva.

emil14 avatar emil14 commented on May 26, 2024

Only array-inport indexing

Allow only referencing array element if its inport

Problem

  1. Probably not solves the routing problem
  2. It could be impossible or VERY hard to figure out incoming connections count (e.g Parent network could use bypass connection)

from neva.

emil14 avatar emil14 commented on May 26, 2024

Only allow if incoming connections count is known

  • if it's clear how parent network uses component
  • if it's clear how many elements submodule uses

Problems

  • Doesn't solve routing problem (there should be some operator for routing)
  • Makes modules less reusable (module with arr-ports indexing could not be used by some networks)
  • Makes compiler more complicated

from neva.

emil14 avatar emil14 commented on May 26, 2024

Don't implement array ports

Just use List

Problems

  • Synchronous flow (must accumulate elements into single peace before processing, must accumulate new list before passing further)
  • Doesn't solves routing problem (bypass also not solves it)
  • FBP has array ports

from neva.

emil14 avatar emil14 commented on May 26, 2024

Allow array outports

Just aware programmer that array-outports must be used with caution

Pros

  • Solves the routing problem
  • True FBP

Cons

  • Possibility for runtime blocks
  • More testing needed
  • Can't claim that "if it compiles it runs" any longer

from neva.

emil14 avatar emil14 commented on May 26, 2024

Check for holes only

If there is a[2] then there must be a[0] and a[1]. Because if there is a[3] then there is 0,1 elements that must be used because someone is must be sending values to those ports.

Problems

  1. Unread values - If there's n ports filled but only <n ports are used outside (could be solved in #54)
  2. Unfilled values - if there's <n ports filled but n ports used #55

from neva.

emil14 avatar emil14 commented on May 26, 2024

Make sure indexing errors are startup errors

Allow outports indexing but make sure any indexing errors will happen at startup of the program

TODO think how to implemnt

from neva.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.