HNHacker News
TopNewBestAskShowJobs

syncurrent

26 karma · joined August 28, 2021

submissionscomments
syncurrent··on Apple Copland D11E4 Booting in the Browser
Maybe we will be able to experience Taligents CommonPoint one day in the browser too.
syncurrent··on Looking at Unity made me understand the point of C++ coroutines
This timing additions to a language is also at the core of imperative synchronous programming languages like Este rel, Céu or Blech.
syncurrent··on Embassy: Modern embedded framework, using Rust and async
A way to implement coroutines in C is via protothreads. I admit that they are a bit hacky - but you can get quite far with them. I used them to implement an Esterel/Blech like environment: https://github.com/frameworklabs/proto_activities
syncurrent··on Hacking Coroutines into C
In `proto_activities` this blinking would look like this:

  pa_activity (Blinker, pa_ctx_tm(), uint32_t onMs, uint32_t offMs) {
    pa_repeat {
      turn_on_LED();
      pa_delay_ms (onMs);
  
      turn_off_LED();
      pa_delay_ms (offMs);
    }
  } pa_end
Here the activity definition automatically creates the structure to hold the pc, timer and other variables which would outlast a single tick.
syncurrent··on Hacking Coroutines into C
A similar approach, but rooted in the idea of synchronous languages like Esterel or Blech:

https://github.com/frameworklabs/proto_activities

syncurrent··on Coroutines in C (2000)
Proto-Activities have this context to store the state in the caller.

https://github.com/frameworklabs/proto_activities

syncurrent··on Fiber in C++: Understanding the Basics
Somewhat related to Fibres are the Trails of synchronous reactive programming languages. Both allow efficient logical concurrency based on cooperative scheduling. The nice thing with Trails is that the scheduling can be determined by the compiler by extracting dependencies from the synchronous reactive program thus increasing determinism of your app.
syncurrent··on Linear code is more readable
Drakon uses Silhouettes to show code linearly and abstracted at the same time:

https://drakon.tech/read/silhouette

syncurrent··on Coroutines make robot code easy
Right, imperative synchronous programming simplifies real time processing a lot.

Somehow it does not get the attention it should, which is IMHO due to the fact that it is not available in common programming languages.

This is why I tried to create DSLs for C and Swift so that more people could potentially play around with that.

https://github.com/frameworklabs/proto_activities

syncurrent··on Blech: A language for developing reactive, real-time critical embedded software
I created two „offsprings“ of Blech:

1. A C based lib using protothreads: https://github.com/frameworklabs/proto_activities

2. A Swift DSL: https://github.com/frameworklabs/Pappe

I think the synchronous approach is really profound and hope more people look into it.

syncurrent··on Introducing multitasking to Arduino
Synchronous programming is also a good choice IMHO to handle multiple concurrent activities in a simple way on an embedded system.

https://github.com/frameworklabs/proto_activities