Invocation: can now accept complex buffer arguments
Add a test case with a wild mix of array and tuple. Yay! the new code works right away...
This commit is contained in:
parent
990e4cbb68
commit
488793174f
2 changed files with 144 additions and 65 deletions
|
|
@ -17,7 +17,7 @@
|
|||
|
||||
|
||||
#include "lib/test/run.hpp"
|
||||
//#include "lib/test/test-helper.hpp"
|
||||
#include "lib/iter-zip.hpp"
|
||||
#include "lib/meta/function.hpp"
|
||||
#include "steam/engine/proc-node.hpp"
|
||||
#include "steam/engine/turnout.hpp"
|
||||
|
|
@ -25,15 +25,18 @@
|
|||
#include "steam/engine/feed-manifold.hpp"
|
||||
#include "steam/engine/diagnostic-buffer-provider.hpp"
|
||||
#include "steam/engine/buffhandle-attach.hpp"
|
||||
#include "lib/test/test-helper.hpp"
|
||||
//#include "lib/format-cout.hpp"
|
||||
#include "lib/test/diagnostic-output.hpp"/////////////////////TODO
|
||||
#include "lib/format-util.hpp"///////////////////////////////TODO
|
||||
#include "lib/util.hpp"
|
||||
|
||||
|
||||
//using std::string;
|
||||
using std::tuple;/////////////TODO
|
||||
using std::array;
|
||||
using std::tuple;
|
||||
using std::array;
|
||||
using util::isSameAdr;
|
||||
using lib::test::showType;
|
||||
|
||||
|
||||
namespace steam {
|
||||
|
|
@ -117,6 +120,7 @@ namespace test {
|
|||
m1.invoke(); // invoke the adapted processing function (fun_singleOut)
|
||||
CHECK (buff.accessAs<long>() == r1); // result: the random number r1 was written into the buffer.
|
||||
|
||||
|
||||
// Example-2: adapt a function to process input -> output buffer
|
||||
auto fun_singleInOut = [](Buffer* in, Buffer* out) { *out = *in + 1; };
|
||||
using M2 = FeedManifold<decltype(fun_singleInOut)>;
|
||||
|
|
@ -135,8 +139,6 @@ namespace test {
|
|||
// and get a new buffer to capture the output
|
||||
BuffHandle buffOut = provider.lockBufferFor<Buffer> (-99);
|
||||
CHECK (buff.accessAs<long>() == r1);
|
||||
SHOW_EXPR(buff.accessAs<long>())
|
||||
SHOW_EXPR(buffOut.accessAs<long>())
|
||||
CHECK (buffOut.accessAs<long>() == -55); ///////////////////////////////////////OOO should be -99 --> aliasing of buffer meta records due to bug with hash generation
|
||||
|
||||
// configure the Manifold-2 with this input and output buffer
|
||||
|
|
@ -154,10 +156,97 @@ SHOW_EXPR(buffOut.accessAs<long>())
|
|||
CHECK (*m2.outArgs == -55); ////////////////////////////////OOO should be -99
|
||||
|
||||
m2.invoke();
|
||||
SHOW_EXPR(r1)
|
||||
SHOW_EXPR(*m1.outArgs)
|
||||
SHOW_EXPR(*m2.outArgs)
|
||||
CHECK (buffOut.accessAs<long>() == r1+1);
|
||||
|
||||
|
||||
// Example-3: accept complex buffer setup
|
||||
using Sequence = array<Buffer,3>;
|
||||
using Channels = array<Buffer*,3>;
|
||||
using Compound = tuple<Sequence*, Buffer*>;
|
||||
auto fun_complexInOut = [](Channels in, Compound out)
|
||||
{
|
||||
auto [seq,extra] = out;
|
||||
for (auto [i,b] : lib::izip(in))
|
||||
{
|
||||
(*seq)[i] = *b + 1;
|
||||
*extra += *b;
|
||||
}
|
||||
};
|
||||
using M3 = FeedManifold<decltype(fun_complexInOut)>;
|
||||
CHECK ( M3::hasInput());
|
||||
CHECK (not M3::hasParam());
|
||||
CHECK (3 == M3::FAN_I);
|
||||
CHECK (2 == M3::FAN_O);
|
||||
CHECK (showType<M3::ArgI>() == "array<long*, 3ul>"_expect);
|
||||
CHECK (showType<M3::ArgO>() == "tuple<array<long, 3ul>*, long*>"_expect);
|
||||
// instantiate...
|
||||
M3 m3{fun_complexInOut};
|
||||
CHECK (3 == m3.inBuff.array().size());
|
||||
CHECK (2 == m3.outBuff.array().size());
|
||||
|
||||
// use existing buffers and one additional buffer for input
|
||||
BuffHandle buffI0 = buff;
|
||||
BuffHandle buffI1 = buffOut;
|
||||
BuffHandle buffI2 = provider.lockBufferFor<Buffer> (-22);
|
||||
SHOW_EXPR(buffI0.accessAs<long>())
|
||||
SHOW_EXPR(buffI1.accessAs<long>())
|
||||
SHOW_EXPR(buffI2.accessAs<long>())
|
||||
CHECK (buffI0.accessAs<long>() == r1 ); // (result from Example-1)
|
||||
CHECK (buffI1.accessAs<long>() == r1+1); // (result from Example-2)
|
||||
CHECK (buffI2.accessAs<long>() == -55 ); ///////////////////////////////////////OOO should be -22
|
||||
// prepare a compound buffer and an extra buffer for output...
|
||||
BuffHandle buffO0 = provider.lockBufferFor<Sequence> (Sequence{-111,-222,-333});
|
||||
BuffHandle buffO1 = provider.lockBufferFor<Buffer> (-33);
|
||||
SHOW_EXPR(util::join(buffO0.accessAs<Sequence>()))
|
||||
SHOW_EXPR(buffO1.accessAs<long>())
|
||||
CHECK ((buffO0.accessAs<Sequence>() == Sequence{-111,-222,-333}));
|
||||
CHECK (buffO1.accessAs<long>() == -55 ); ///////////////////////////////////////OOO should be -33
|
||||
|
||||
// configure the Manifold-3 with these input and output buffers
|
||||
m3.inBuff.createAt (0, buffI0);
|
||||
m3.inBuff.createAt (1, buffI1);
|
||||
m3.inBuff.createAt (2, buffI2);
|
||||
m3.outBuff.createAt(0, buffO0);
|
||||
m3.outBuff.createAt(1, buffO1);
|
||||
m3.connect();
|
||||
SHOW_EXPR(m3.inArgs)
|
||||
SHOW_EXPR(m3.outArgs)
|
||||
// Verify data exposed prior to invocation....
|
||||
auto& [ia0,ia1,ia2] = m3.inArgs;
|
||||
auto& [oa0,oa1] = m3.outArgs;
|
||||
auto& [o00,o01,o02] = *oa0;
|
||||
SHOW_EXPR(ia0)
|
||||
SHOW_EXPR(ia1)
|
||||
SHOW_EXPR(ia2)
|
||||
SHOW_EXPR(oa0)
|
||||
SHOW_EXPR(o00)
|
||||
SHOW_EXPR(o01)
|
||||
SHOW_EXPR(o02)
|
||||
SHOW_EXPR(oa1)
|
||||
CHECK (*ia0 == r1 );
|
||||
CHECK (*ia1 == r1+1);
|
||||
CHECK (*ia2 == -55 ); /////////////////////////////////////////////////////OOO should be -22
|
||||
CHECK ( o00 == -111);
|
||||
CHECK ( o01 == -222);
|
||||
CHECK ( o02 == -333);
|
||||
CHECK (*oa1 == -55 ); /////////////////////////////////////////////////////OOO should be -33
|
||||
|
||||
m3.invoke();
|
||||
SHOW_EXPR(ia0)
|
||||
SHOW_EXPR(ia1)
|
||||
SHOW_EXPR(ia2)
|
||||
SHOW_EXPR(oa0)
|
||||
SHOW_EXPR(o00)
|
||||
SHOW_EXPR(o01)
|
||||
SHOW_EXPR(o02)
|
||||
SHOW_EXPR(oa1)
|
||||
CHECK (*ia0 == r1 ); // Input buffers unchanged
|
||||
CHECK (*ia1 == r1+1);
|
||||
CHECK (*ia2 == -55 ); /////////////////////////////////////////////////////OOO should be -22
|
||||
CHECK ( o00 == *ia0+1); // Output buffers as processed by the function
|
||||
CHECK ( o01 == *ia1+1);
|
||||
CHECK ( o02 == *ia2+1);
|
||||
CHECK (*oa1 == -55 + *ia0+*ia1+*ia2); ///////////////////////////////////////////OOO should be -33
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -25554,9 +25554,7 @@
|
|||
</node>
|
||||
<node CREATED="1540512486974" ID="ID_709169542" MODIFIED="1576282358072" TEXT="Funktor">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
der ctor des DisplayFrame bekommt einen Funktor oder Lambda,
|
||||
|
|
@ -26344,9 +26342,7 @@
|
|||
</node>
|
||||
<node COLOR="#338800" CREATED="1678381623392" ID="ID_222335481" MODIFIED="1678381792387" TEXT="Zusammenhang abstrahiert">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
Habe mich hier für eine <i>komplett unterirdische Verbindung</i> entschieden, denn ich möchte keinesfalls den Layout-Manager zu einem sichtbaren Akteur ausbauen — ein »Layout-Manager« wäre eine derart offensichtliche zentrale Autorität, daß der Weg zur „Gott-Klasse“ nicht mehr weit ist
|
||||
|
|
@ -26932,9 +26928,7 @@
|
|||
<node CREATED="1677242528649" ID="ID_1133975830" MODIFIED="1677242536188" TEXT="kein richties Handbuch">
|
||||
<node CREATED="1677242594624" ID="ID_741403940" MODIFIED="1677242644637" TEXT="nur sehr spezifische Lehrmaterialien">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
"Mathe für 6-13 järige" etc
|
||||
|
|
@ -27122,9 +27116,7 @@
|
|||
</node>
|
||||
<node CREATED="1677285183885" ID="ID_1263712065" MODIFIED="1677285326059" TEXT="Expressions, Objektmodell und Rererenzen lassen zu wünschen übrig">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
Die Geometrie-Elemente in den Sketch-Objekten sind eine Spezial-Implementierung, und keine »first class citizens«. Es ist nicht klar, wie man sie aus Expressions referenzieren kann (kein sauberes DSL-Design). Das Dependency-Management ist viel zu naiv implementiert, und es wird empfohlen, mit Tricks und Kniffen zu arbeiten.
|
||||
|
|
@ -27610,9 +27602,7 @@
|
|||
<icon BUILTIN="button_cancel"/>
|
||||
<node CREATED="1678028227991" ID="ID_1354143607" MODIFIED="1678028733057">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
⤷ <i>kommend von</i> <font face="Monospaced" size="2">DisplayFrame::sync_and_balance (DisplayEvaluation&)</font>
|
||||
|
|
@ -28712,9 +28702,7 @@
|
|||
<node CREATED="1555806824441" ID="ID_948993908" MODIFIED="1557498707228" TEXT="Resultat: aus dem std::get fällt eine rvalue-Referenz raus"/>
|
||||
<node CREATED="1555806920309" ID="ID_1549876372" MODIFIED="1557498707228" TEXT="das könnte sogar das Standard-Baumuster für "perfect forwarding" sein">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
...denn es handelt sich hierbei um einen Konstruktionstrick.
|
||||
|
|
@ -30624,9 +30612,7 @@
|
|||
<icon BUILTIN="help"/>
|
||||
<node CREATED="1560618780573" ID="ID_1295221704" MODIFIED="1568577629019">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
naheliegend: das <b>BodyCanvasWidget</b> selber
|
||||
|
|
@ -31353,9 +31339,7 @@
|
|||
<arrowlink COLOR="#7c8da1" DESTINATION="ID_73927449" ENDARROW="Default" ENDINCLINATION="207;0;" ID="Arrow_ID_679820364" STARTARROW="None" STARTINCLINATION="-325;70;"/>
|
||||
<node CREATED="1562843975693" ID="ID_317751446" MODIFIED="1562843975693">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
widget->get_style_context();
|
||||
|
|
@ -33547,9 +33531,7 @@
|
|||
<icon BUILTIN="idea"/>
|
||||
<node CREATED="1566955975338" ID="ID_1779775058" MODIFIED="1566955999837">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
die gekoppelten Scrollbars funktionieren dann <i>"von selber"</i>
|
||||
|
|
@ -34253,9 +34235,7 @@
|
|||
<icon BUILTIN="flag-pink"/>
|
||||
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1544135984042" ID="ID_429363053" MODIFIED="1584932261288" TEXT="Grund für den Fehler im Nexus?">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
ERR: nexus.hpp:189: worker_3: ~Nexus: Some UI components are still connected to the backbone.
|
||||
|
|
@ -34902,9 +34882,7 @@
|
|||
<node CREATED="1583102068949" ID="ID_1157479559" MODIFIED="1583102075826" TEXT="Probleme / Entscheidungen">
|
||||
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1583102099206" ID="ID_1626144230" MODIFIED="1679065446533" TEXT="Umgang mit einem Clip-Header">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
was ist das?
|
||||
|
|
@ -35504,9 +35482,7 @@
|
|||
</node>
|
||||
<node CREATED="1504833434094" ID="ID_349655067" MODIFIED="1557498707232">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
Docks enthalten <b>Component Views</b>
|
||||
|
|
@ -36195,9 +36171,7 @@
|
|||
</node>
|
||||
<node COLOR="#338800" CREATED="1533309280940" ID="ID_918869201" MODIFIED="1576282358030" TEXT="Stand 8/2018 verifiziert">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
suche (case insensitive) nach application_activate
|
||||
|
|
@ -36744,9 +36718,7 @@
|
|||
</body>
|
||||
</html></richcontent>
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<ul>
|
||||
<li>
|
||||
|
|
@ -87396,7 +87368,8 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<node CREATED="1733761653882" ID="ID_950074593" MODIFIED="1733761667427" TEXT="allerdings hält jeder Storage-Frame gleich ein Tupel von Werten"/>
|
||||
<node CREATED="1733704677700" ID="ID_57789571" MODIFIED="1733704753675" TEXT="Storage-Frames werden per Accessor-Key registriert"/>
|
||||
<node CREATED="1733704793907" ID="ID_1040373700" MODIFIED="1733704816204" TEXT="offen halten — keine integrierte Magie"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1733704821863" ID="ID_1350706165" MODIFIED="1733704853138" TEXT="außerdem: Umbau auf das Misch-Modell für Parameter">
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1733704821863" ID="ID_1350706165" MODIFIED="1734552063674" TEXT="außerdem: Umbau auf das Misch-Modell für Parameter">
|
||||
<arrowlink COLOR="#a06e80" DESTINATION="ID_1354544776" ENDARROW="Default" ENDINCLINATION="-1058;-56;" ID="Arrow_ID_501116604" STARTARROW="None" STARTINCLINATION="1136;60;"/>
|
||||
<icon BUILTIN="yes"/>
|
||||
</node>
|
||||
</node>
|
||||
|
|
@ -88470,15 +88443,18 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1734310118603" ID="ID_1954508996" MODIFIED="1734310510263" TEXT="Feed-Manifold: Eigenschaften demonstrieren">
|
||||
<linktarget COLOR="#406cd3" DESTINATION="ID_1954508996" ENDARROW="Default" ENDINCLINATION="-484;30;" ID="Arrow_ID_640616380" SOURCE="ID_1710382999" STARTARROW="None" STARTINCLINATION="-2974;268;"/>
|
||||
<icon BUILTIN="pencil"/>
|
||||
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1734310213994" ID="ID_691754137" MODIFIED="1734536050291" TEXT="mehrere Varianten von Funktions-Signaturen vorstellen">
|
||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1734310213994" ID="ID_691754137" MODIFIED="1734556323351" TEXT="mehrere Varianten von Funktions-Signaturen vorstellen">
|
||||
<icon BUILTIN="yes"/>
|
||||
<node COLOR="#338800" CREATED="1734310245306" ID="ID_1881940952" MODIFIED="1734535951144" TEXT="reiner Output mit einem Buffer">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1734310278618" ID="ID_1569263616" MODIFIED="1734536988389" TEXT="Input ⟼ Output mit einem Buffer">
|
||||
<node COLOR="#338800" CREATED="1734310278618" ID="ID_1569263616" MODIFIED="1734552396539" TEXT="Input ⟼ Output mit einem Buffer">
|
||||
<arrowlink COLOR="#f70b4e" DESTINATION="ID_1455684253" ENDARROW="Default" ENDINCLINATION="-91;-6;" ID="Arrow_ID_490366864" STARTARROW="None" STARTINCLINATION="-130;10;"/>
|
||||
<linktarget COLOR="#78b893" DESTINATION="ID_1569263616" ENDARROW="Default" ENDINCLINATION="406;32;" ID="Arrow_ID_1856379869" SOURCE="ID_745699305" STARTARROW="None" STARTINCLINATION="-602;56;"/>
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
<node COLOR="#338800" CREATED="1734552381857" ID="ID_1059351113" LINK="#ID_1910303400" MODIFIED="1734556282597" TEXT="Input ⟼ Output mit komplexen Typen">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1734310306689" ID="ID_246862993" MODIFIED="1734310327544" TEXT="Input ⟼ Output mit einem Buffer mit einem Parameter">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
|
|
@ -91867,8 +91843,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<u>Erläuterung</u>: egal wie die interne Logik abläuft, am Ende muß sie für jeden Slot <i>den Typ (kompatibel) ausweisen,</i> der initial für diese Stelle in der Signatur angegeben wurde
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
</html></richcontent>
|
||||
<linktarget COLOR="#daf6fe" DESTINATION="ID_1825901061" ENDARROW="Default" ENDINCLINATION="-1280;54;" ID="Arrow_ID_1390781333" SOURCE="ID_573532514" STARTARROW="None" STARTINCLINATION="-446;-20;"/>
|
||||
</node>
|
||||
</node>
|
||||
|
|
@ -91894,7 +91869,19 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1734191257640" ID="ID_1241232500" MODIFIED="1734191262543" TEXT="_ParamFun"/>
|
||||
<node CREATED="1734191257640" ID="ID_1241232500" MODIFIED="1734191262543" TEXT="_ParamFun">
|
||||
<node CREATED="1734552129926" ID="ID_489662542" MODIFIED="1734552290088" TEXT="wird da überhaupt ein separater Trait benötigt?">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
Die Signatur des Parameter-Funktors folgt eigentlich zwansläufig aus der gegebenen Processing-Function: es muß ein TurnoutSystem& akzeptiert und ein Parameter(Tupel) geliefert werden (by-value). Seiteneffekte im TurnoutSystem sind möglich (aber die Ausnahme)
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1734133384146" ID="ID_250842155" MODIFIED="1734133516983" TEXT="Typ-Steuerung im Builder überarbeiten">
|
||||
|
|
@ -92169,7 +92156,8 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1734132967020" ID="ID_1354544776" MODIFIED="1734133516984" TEXT="Param-Tuple in FeedManifold aufnehmen">
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1734132967020" ID="ID_1354544776" MODIFIED="1734552052539" TEXT="Param-Tuple in FeedManifold aufnehmen">
|
||||
<linktarget COLOR="#a06e80" DESTINATION="ID_1354544776" ENDARROW="Default" ENDINCLINATION="-1058;-56;" ID="Arrow_ID_501116604" SOURCE="ID_1350706165" STARTARROW="None" STARTINCLINATION="1136;60;"/>
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1734286428873" ID="ID_1059514888" MODIFIED="1734300480355" TEXT="Vorraussetzung ist ein anspruchsvoller Umbau">
|
||||
<icon BUILTIN="pencil"/>
|
||||
|
|
@ -92184,8 +92172,8 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<linktarget COLOR="#75a8d1" DESTINATION="ID_132315841" ENDARROW="Default" ENDINCLINATION="532;28;" ID="Arrow_ID_791254362" SOURCE="ID_718171059" STARTARROW="None" STARTINCLINATION="115;5;"/>
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1734286560983" ID="ID_431464065" MODIFIED="1734480210827" TEXT="auf die flexible Funktor-Signatur schwenken">
|
||||
<icon BUILTIN="pencil"/>
|
||||
<node COLOR="#338800" CREATED="1734286560983" ID="ID_431464065" MODIFIED="1734552331657" TEXT="auf die flexible Funktor-Signatur schwenken">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1734300380799" ID="ID_782708625" MODIFIED="1734300402299" TEXT="dann die Erweiterung auf strukturierte Typen dazunehmen">
|
||||
|
|
@ -92358,7 +92346,8 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1734480338809" ID="ID_1051007990" MODIFIED="1734480347674" TEXT="connect-Funktion umstellen">
|
||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1734480338809" ID="ID_1051007990" MODIFIED="1734552348128" TEXT="connect-Funktion umstellen">
|
||||
<icon BUILTIN="pencil"/>
|
||||
<node CREATED="1734480363094" ID="ID_81517996" MODIFIED="1734480413909" TEXT="gemischte Iteration über Tupel und Array">
|
||||
<arrowlink COLOR="#4ab2e5" DESTINATION="ID_1513818427" ENDARROW="Default" ENDINCLINATION="-120;11;" ID="Arrow_ID_668892948" STARTARROW="None" STARTINCLINATION="-103;-9;"/>
|
||||
</node>
|
||||
|
|
@ -92478,8 +92467,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
void dummyOp (<font color="#d80f0f"><b>NoArg</b></font> in, <b>SoloArg</b> out)
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
</html></richcontent>
|
||||
<font NAME="SansSerif" SIZE="11"/>
|
||||
</node>
|
||||
<node CREATED="1734546333505" ID="ID_1369045625" MODIFIED="1734546509505" TEXT="der erste Slot kann nicht klassifiziert werden">
|
||||
|
|
@ -92490,8 +92478,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
rein logisch läßt sich das nicht lösen — die Entscheidung beruht dann auf einer willkürlichen Konvention; im Moment habe ich fesgelegt: »das können keine Buffer sein«
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
<node CREATED="1734546349095" ID="ID_1864083410" MODIFIED="1734546372125" TEXT="per Default wird er ein Param-Slot"/>
|
||||
</node>
|
||||
|
|
@ -92513,6 +92500,9 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node COLOR="#338800" CREATED="1734556219075" ID="ID_1910303400" LINK="#ID_1059351113" MODIFIED="1734556349702" TEXT="Ha: komplexe gemischte Buffer-Parameter funktionieren auf Anhieb">
|
||||
<icon BUILTIN="ksmiletris"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1734133400400" ID="ID_1364724277" MODIFIED="1734141875620" TEXT="zusätzlichen Funktor für die Parameter akzeptieren">
|
||||
|
|
|
|||
Loading…
Reference in a new issue