Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.javascript > #122844

Re: ANN: Dogelog Player 1.1.5 (HTTP Server)

Newsgroups comp.lang.javascript
Date 2024-02-20 16:20 -0800
References (5 earlier) <ur2ish$ci33$2@solani.org> <ur2v8l$2lhr7$3@dont-email.me> <ur3e4a$d07q$1@solani.org> <ur3e85$d07q$2@solani.org> <ur3f7b$d0ob$1@solani.org>
Message-ID <bb4cb7d2-e206-49f8-9336-00f3516fc854n@googlegroups.com> (permalink)
Subject Re: ANN: Dogelog Player 1.1.5 (HTTP Server)
From Mild Shock <bursejan@gmail.com>

Show all headers | View raw


Also the Kotlin language and runtime might suffer from 
not enough "DIRECT STYLE" and even ignoring Doug Leas
java.util.concurrent.Flow, devlivering some bloated

redundant nonsense I speculate from glossing over it. 
Flow has an interesting history. And all the new JDK 21 
integrate HTTP server and HTTP client make use of 

the interfaces bundled by the class Flow. But I am 
tapping into it via ordinary InputStream and OutputStream.

Reactive Streams started as an initiative in late 2013 
between engineers at Netflix, Pivotal and Lightbend. 
Reactive Streams were proposed to become part of 
Java 9 by Doug Lea, leader of JSR 166 as a new Flow 
class that would include the interfaces currently 
provided by Reactive Streams.
https://en.wikipedia.org/wiki/Reactive_Streams

Mild Shock schrieb am Mittwoch, 21. Februar 2024 um 01:13:39 UTC+1:
> Its also proof of concept that no stack copying 
> is necessary. Well its not 100% true the Prolog 
> interpreter does a little bit unwind and rewind 
> 
> during the '$YIELD'/1 instruction. But we do 
> nowhere copy some native stack, this is unlike 
> Martin Odersky's speculation, he might implement 
> 
> someting with stack copying. Except that a virtual 
> threads might using a copying when they resize 
> their stack, I don't see any need for copying. 
> 
> Also sometimes a callback can be piggy packed on 
> an existing coroutine if it doesn't yield itself, 
> I am already using this in Dogelog Player as an 
> 
> optimization. The idea to use semaphores in my 
> implementation can be credited to this paper 
> from 1980 where semaphores are the main switchpoint: 
> 
> Extension of Pascal and its Application to 
> Quasi-Parallel Programming and Simulation, Software - 
> Practice and Experience, 10 (1980), 773-789 
> J. Kriz and H. Sandmayr 
> https://www.academia.edu/47139332 
> 
> But my experience with JDK 21 virtual threads 
> is still poor, I am only beginning to explore them 
> as a way to have a large number of coroutines. 
> 
> Mild Shock schrieb:
> > 
> > Basically you can programm in so called "DIRECT STYLE" 
> > even if async I/O is involved, which might be even a 
> > shock for functional programming language users 
> > 
> > that are used to a lot of nonsense. 
> > 
> > See also: 
> > 
> > Async/Await for the Monadic Programmer 
> > https://www.youtube.com/watch?v=OH5cxLNTTPo 
> > 
> > DIRECT STYLE SCALA Scalar Conference 2023 
> > https://www.youtube.com/watch?v=0Fm0y4K4YO8 
> > 
> > Mild Shock schrieb: 
> >> 
> >> Well they have suspend/resume semantics. They 
> >> are not continuations. They aim is to provide 
> >> async/await and not only setTimeout(). 
> >> 
> >> As a result you don't need to write libraries 
> >> with a continuation parameters. This is very unlike 
> >> nonsense such as the express web framework. 
> >> 
> >> stackfulness 
> >> In contrast to a stackless coroutine a stackful 
> >> coroutine can be suspended from within a nested 
> >> stackframe. Execution resumes at exactly the same 
> >> point in the code where it was suspended before. 
> >> 
> >> stackless 
> >> With a stackless coroutine, only the top-level routine 
> >> may be suspended. Any routine called by that top-level 
> >> routine may not itself suspend. This prohibits 
> >> providing suspend/resume operations in routines within 
> >> a general-purpose library. 
> >> https://www.boost.org/doc/libs/1_57_0/libs/coroutine/doc/html/coroutine/intro.html#coroutine.intro.stackfulness 
> >> 
> >> 
> >> 
> >> Lawrence D'Oliveiro schrieb: 
> >>> On Tue, 20 Feb 2024 17:09:53 +0100, Mild Shock wrote: 
> >>> 
> >>>> The idea is that threads use a bouncer semaphore to get a permission to 
> >>>> execute and thus become “coroutines”. 
> >>> 
> >>> But they are still stackful coroutines, not stackless. 
> >>> 
> >> 
> >

Back to comp.lang.javascript | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

Re: ANN: Dogelog Player 1.1.5 (HTTP Server) Mild Shock <janburse@fastmail.fm> - 2024-02-20 17:09 +0100
  Re: ANN: Dogelog Player 1.1.5 (HTTP Server) Lawrence D'Oliveiro <ldo@nz.invalid> - 2024-02-20 19:41 +0000
    Re: ANN: Dogelog Player 1.1.5 (HTTP Server) Mild Shock <janburse@fastmail.fm> - 2024-02-21 00:54 +0100
      Re: ANN: Dogelog Player 1.1.5 (HTTP Server) Mild Shock <janburse@fastmail.fm> - 2024-02-21 00:56 +0100
        Re: ANN: Dogelog Player 1.1.5 (HTTP Server) Mild Shock <janburse@fastmail.fm> - 2024-02-21 01:13 +0100
          Re: ANN: Dogelog Player 1.1.5 (HTTP Server) Mild Shock <bursejan@gmail.com> - 2024-02-20 16:20 -0800
    Re: ANN: Dogelog Player 1.1.5 (HTTP Server) Mild Shock <janburse@fastmail.fm> - 2024-02-21 13:37 +0100

csiph-web