🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.c
Article #310199

Re: Coroutines w (GNU) C

#310199
From: Maciek Godek
Date: Wed, 29 Jan 2020 21:40
45 lines
3913 bytes
W dniu środa, 29 stycznia 2020 22:25:33 UTC+1 użytkownik heby napisał:
> >> yeld( 42 );
> >> for( i = 6 ; i < 10 ; ++i )
> >>      [...]
> >>      yeld( i );
> >>      [...]
> > Czas start.
> > int f(void) {
> >    COROUTINE_START();
> >    static int i;
> 
> Jeb. Właśnie użyłeś zmiennej globalnej. Ojej. Co się może stać?

No. Co się może stać?

> Innymi słowy jesteś krytykowany że twój kod wymaga zmiennych globalnych, 
> pytasz "czego nie możesz zrobić bez stosu, a co mógłbyć zrobić, gdybyś 
> miał korutyny ze stosem", podaje przykład a ty dajesz przykład korutyny 
> bez stosu joko dowód że też da się zrobić.

To, czy użyjesz zmiennej automatycznej, czy statycznej, to tylko drobna różnica w implementacji. Funkcjonalnie ten kod jest identyczny.
A jeżeli nie jest, to pokaż mi proszę różnicę.

> > Hmm. Chyba wygląda dość tak samo.
> 
> Nie, jedno to pure function a druga to side effect. Fundamentalna 
> różnica, ludzie poświęcili życie aby wykazać lepszosc jednych nad 
> drugimi, tony prac naukowych napisali. Przykro mi że nie dostrzegasz 
> tego "detalu".

Korutyna nie jest "pure function".
Poczytaj sobie może troszkę, zanim zaczniesz używać terminologii.
Czyste funkcje w ogóle nie mają czegoś takiego, jak "przebieg sterowania".

> >> PS. Zmienne statyczne tez nie są potrzebne. Wystarczy dowolny obiekt
> >> trzymający stan korutyny. Zaznaczam że jest to tylko niewiele lepsze
> >> rozwiązanie bo ten obiekt też musi być śledzony jeśli nie daj Panie
> >> korutyny będą się przeplatać. Tak czy owak d...z tyłu.
> > Nadal nie podałeś żadnego przykładu.
> 
> Nie musiałem, sam napisałeś przed chwilą przykład korutyny która jest 
> nie reentrant, thradsafe, wahatever. Moja z boosta jest reentrant, 
> threadsafe, whatever.

No to pokaż mi różnicę behawioralną. Pokaż, jak jedna się może zepsuć, a druga nie może, bo na razie to tak sobie gadasz.
Technical Details
Message-ID: <cc360fba-2eab-4928-8e14-36db20fa4a96@googlegroups.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!3.eu.feeder.erje.net!feeder.erje.net!weretis.net!feeder7.news.weretis.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!g89no715624qtd.0!news-out.google.com!w29ni988qtc.0!nntp.google.com!g89no715616qtd.0!postnews.google.com!google-groups.googlegroups.com!not-for-mail
References: <4375b52d-ba21-462a-8844-9bd1a02e9ece@googlegroups.com> <r0k8i5$ifg$1@dont-email.me> <ce3f0b08-658f-4248-b82c-09f093a7f20c@googlegroups.com> <r0kq6d$v6h$1@dont-email.me> <748c5d16-f4a8-43a0-8a56-bea0800e1e04@googlegroups.com> <r0n95e$35l$1@dont-email.me> <f3df206c-11d4-4b22-87ff-fc7aa00935f3@googlegroups.com> <r0nevq$9iq$1@dont-email.me> <ecae4ae1-0b06-4956-8df0-593fa0f1cd01@googlegroups.com> <r0njjv$740$1@dont-email.me> <0e0786af-7b58-4070-b8cd-81f1bda1f432@googlegroups.com> <r0q9iv$23b$1@dont-email.me> <b7cfec93-1d13-44e3-a924-0869447ed3c7@googlegroups.com> <r0seqp$av0$1@dont-email.me> <462689f9-f50d-4a96-8910-cb65757a017a@googlegroups.com> <r0st86$956$1@dont-email.me>

Show Full Headers
Complete Article Headers
X-Received: by 2002:a37:4047:: with SMTP id n68mr2041410qka.258.1580334050839;        Wed, 29 Jan 2020 13:40:50 -0800 (PST)
X-Received: by 2002:a25:2348:: with SMTP id j69mr1359815ybj.465.1580334050616; Wed, 29 Jan 2020 13:40:50 -0800 (PST)
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!3.eu.feeder.erje.net!feeder.erje.net!weretis.net!feeder7.news.weretis.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!g89no715624qtd.0!news-out.google.com!w29ni988qtc.0!nntp.google.com!g89no715616qtd.0!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: pl.comp.lang.c
Date: Wed, 29 Jan 2020 13:40:50 -0800 (PST)
In-Reply-To: <r0st86$956$1@dont-email.me>
Complaints-To: groups-abuse@google.com
Injection-Info: google-groups.googlegroups.com; posting-host=83.25.200.96; posting-account=f7iIKQoAAAAkDKpUafc-4IXhmRAzdB5r
NNTP-Posting-Host: 83.25.200.96
References: <4375b52d-ba21-462a-8844-9bd1a02e9ece@googlegroups.com> <r0k8i5$ifg$1@dont-email.me> <ce3f0b08-658f-4248-b82c-09f093a7f20c@googlegroups.com> <r0kq6d$v6h$1@dont-email.me> <748c5d16-f4a8-43a0-8a56-bea0800e1e04@googlegroups.com> <r0n95e$35l$1@dont-email.me> <f3df206c-11d4-4b22-87ff-fc7aa00935f3@googlegroups.com> <r0nevq$9iq$1@dont-email.me> <ecae4ae1-0b06-4956-8df0-593fa0f1cd01@googlegroups.com> <r0njjv$740$1@dont-email.me> <0e0786af-7b58-4070-b8cd-81f1bda1f432@googlegroups.com> <r0q9iv$23b$1@dont-email.me> <b7cfec93-1d13-44e3-a924-0869447ed3c7@googlegroups.com> <r0seqp$av0$1@dont-email.me> <462689f9-f50d-4a96-8910-cb65757a017a@googlegroups.com> <r0st86$956$1@dont-email.me>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <cc360fba-2eab-4928-8e14-36db20fa4a96@googlegroups.com>
Subject: Re: Coroutines w (GNU) C
From: Maciek Godek <godek.maciek@gmail.com>
Injection-Date: Wed, 29 Jan 2020 21:40:50 +0000
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit