Article View: pl.comp.lang.c
Article #310075Re: Coroutines w (GNU) C
From: heby
Date: Mon, 27 Jan 2020 19:51
Date: Mon, 27 Jan 2020 19:51
42 lines
3406 bytes
3406 bytes
On 27/01/2020 20:24, Maciek Godek wrote: > Konkretnie dlatego, że rozwijam system w języku C, i potrzebuję mechanizmu dla języka C. I dlaczego nie możesz uzy kompilatora C++? To kwestie religijne? >> W systemach gdzie się przydaje na 100% jest C++. W 99.9% >> wypadków wystarczy zamienić gcc na g++. > Tak. Można też np. osadzić interpreter Lua, który też wspiera coroutines. Nie, poniewa zmiana z gcc na g++ to jaki 10 sekund, a zmiana na Lua to od kilku do kilkuset godzin i zerowy sens. >> Po co komu coroutines w C skorą są/będą w C++? > To teraz powiedz mi: > - czy powinienem teraz korzystać z coroutines ze standardu, który jeszcze nie został zatwierdzony, czy może raczej wziąć teraz boosta, a później usuwać zależności i refaktoryzować do standardu? Użyć boosta, dorobić abstrakcję i zrefaktoryzować jak będzie po co za kilka lat. > - w jaki sposób te korutyny są w booście albo w standardzie zaimplementowane? Czy potrafisz z całą pewnością powiedzieć, że nie będzie problemu ze wznawianiem ich w interrupt handlerach na ARMach? "[...] Pomysł opiera się na rozszerzeniu kompilatora GCC [...]" Czy potrafisz z całą pewnością wskazać sensowną zaletę side effects jakiejś implementacji vs szeroko używana bibliteka ktorej spore fragmenty lądują co jakiś czas w standardzie? Jesteś pewny że ktokolwiek będzie uzywać *KORUTYN* w handlerach przerwań na ARMie czy innym 6502? Żartujesz, powiedz proszę. > Czy może potrzebuję nadać im jakiś magiczny atrybut w rodzaju "nothrow", żeby mieć pewność, że to zadziała dla mojego use case'u? Dlaczego masz nadawać nothrow? Jak exception spadnie na dno stosu to w dowolnej implementacji dzieją się interesujace rzeczy. A już najbardziej interesujace rzeczy dzieją się jak ten exception jest wywołany z Twojego C... > Bo u mnie to jest 20 linijek bardzo prostego kodu. Bazującego feature jakiegoś kompilatora o niejasnej przyszłosci i przenośności.
Technical Details
Message-ID:
<r0nevq$9iq$1@dont-email.me>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!wsisiz.edu.pl!goblin3!goblin.stu.neva.ru!news.neodome.net!news.uzoreto.com!eternal-september.org!feeder.eternal-september.org!reader01.eternal-september.org!.POSTED!not-for-mailReferences:
<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>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!wsisiz.edu.pl!goblin3!goblin.stu.neva.ru!news.neodome.net!news.uzoreto.com!eternal-september.org!feeder.eternal-september.org!reader01.eternal-september.org!.POSTED!not-for-mail From: heby <heby@poczta.onet.pl> Newsgroups: pl.comp.lang.c Subject: Re: Coroutines w (GNU) C Date: Mon, 27 Jan 2020 20:51:21 +0100 Organization: A noiseless patient Spider Lines: 42 Message-ID: <r0nevq$9iq$1@dont-email.me> 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> Mime-Version: 1.0 Injection-Date: Mon, 27 Jan 2020 19:51:22 -0000 (UTC) Injection-Info: reader02.eternal-september.org; posting-host="a142005fc87d8a3409f6f9b4ffde8cce"; logging-data="9818"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/Wy7HBtajfoa1FvD1T5VPX" User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.9.1 Cancel-Lock: sha1:8tc4hUjSXiaYGWtSK7+6CS9dap4= In-Reply-To: <f3df206c-11d4-4b22-87ff-fc7aa00935f3@googlegroups.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit