News for hackers. Stuff that matters.
Re:Show HN: Céu, Structured Synchronous Reactive Programming by jessaustin on Tuesday January 31, 2017 @08:55PM (#13537484)
Synchronous: reactions run to completion, i.e., there's no implicit preemption or real parallelism

Does this mean a program will hang if e.g. disk or network access takes too long?

Re:Show HN: Céu, Structured Synchronous Reactive Programming by hisham_hm on Tuesday January 31, 2017 @09:09PM (#13537553)
Yes in theory. But in practice the language includes "async" support so you can guard these few operations that may take long. Like in a functional language you assume everything is pure unless marked to have side-effects, here you assume every reaction is instant unless is something that has to be explicitly "awaited" for. It's a pretty clean model.
Re:Show HN: Céu, Structured Synchronous Reactive Programming by vanderZwan on Wednesday February 01, 2017 @05:59AM (#13539785)
Another way of thinking about this (also mentioned in the docs somewhere) is that Ceu "pretends" that any reactive code finishes infinitely fast, similar to how garbage collected languages "pretend" that computers have infinite memory.

Neither truly does, of course, but the idea is that for the vast majority of situations where either type of language is used, that's a good enough approximation, letting you vastly simplify the problem that you're solving.

Re:Show HN: Céu, Structured Synchronous Reactive Programming by fsantanna on Wednesday February 01, 2017 @03:14AM (#13539207)
External calls in C require an underscore (e.g., "_printf") to be easily trackable as possibly unsafe.

Also, at some point in the code (e.g., after you include your libraries), one can disable these calls with a directive.

But typically, one will use bindings for asynchronous libraries, such as libuv (https://github.com/fsantanna/ceu-libuv).