[Ebooks PDF] download Pro .NET 5 Custom Libraries: Implementing Custom .NET Data Types 1st Edition Roger Villela full chapters
[Ebooks PDF] download Pro .NET 5 Custom Libraries: Implementing Custom .NET Data Types 1st Edition Roger Villela full chapters
com
https://textbookfull.com/product/pro-net-5-custom-libraries-
implementing-custom-net-data-types-1st-edition-roger-
villela/
OR CLICK BUTTON
DOWNLOAD NOW
https://textbookfull.com/product/pro-c-7-with-net-and-net-core-andrew-
troelsen/
textboxfull.com
The publisher, the authors and the editors are safe to assume that the
advice and information in this book are believed to be true and accurate
at the date of publication. Neither the publisher nor the authors or the
editors give a warranty, expressed or implied, with respect to the
material contained herein or for any errors or omissions that may have
been made. The publisher remains neutral with regard to jurisdictional
claims in published maps and institutional affiliations.
1. .NET Platform
Roger Villela1
(1) Sao Paulo, Sã o Paulo, Brazil
This chapter provides an overview of .NET 5 (previously .NET Core) and describes the fundamental
architectural and the engineering features that you should expect in any implementation of .NET 5
(regardless of hardware, operating system, or execution system).
Acronyms
The following acronyms are introduced in this chapter:
Base Class Library (BCL)
Common Intermediate Language (CIL)
Common Language Infrastructure (CLI)
Common Language Runtime (CLR)
Common Type System (CTS)
Framework Class Library (FCL) (Although not specific to the .NET Framework implementation, the
term is used for the full range of .NET types available in an official distribution of .NET.)
Intermediate Language (IL)
Microsoft Intermediate Language (MSIL)
Virtual Execution System (VES)
Windows Presentation Foundation (WPF) (a.k.a. execution engine)
Figure 1-3 Some .NET types (for example, System.Array) are abstract data types and are implemented partially by code
generation of the compiler (for example, a C# compiler)
Figure 1-4 System.ValueType is a reference type, and System.Int32 is a value type derived from System.ValueType, which
inherits from the System.Object reference type
In the C# programming language, because C# treats System.Object as the base class, we do not
need to use the System.Object root data type explicitly when we do not have another class as the
base data type.
In fact, the execution environment of the CLR (the VES) assumes this; therefore, most
programming languages do not require that System.Object be informed explicitly in this scenario.
However, it is good programming practice to explicitly use the base data type in such cases. Otherwise,
this can become error prone when using more than one programming language in a project,
potentially resulting in erroneous perceptions about the inheritance model supported by the .NET
execution environment and the transfer of the desired feature to the programming language and the
adoption of different programming languages (all because of basic resources of syntax).
#region Namespaces
using System;
#endregion
namespace ConsoleClient {
public static class Program : System.Object {
public static void Main() {
return;
}
};
};
Listing 1-1 Typical Source Code in the C# Programming Language for a Console Application with an Entry-Point
Member Method Called Program.Main()
.entrypoint
// Code size 1 (0x1)
.maxstack 8
ret
.NET Platform
Microsoft .NET is the official commercial name for the group of technologies and tools designed and
implemented based on what is in the ECMA-335 standard specification.
Common Language Runtime, as the name suggests, is an implementation based on the CLI
standard specification, and an implementation of the CLR has a set of elements for a fundamental
architectural model. Each element has a fundamental set of conceptual definitions and rules to be
followed, and engineering mechanisms to be implemented, independently of the target operating
system and hardware platforms.
When we are implementing a CLR environment and technologies of a .NET platform, we are
creating software elements for a platform that is a nonspecific hardware-based computer (more
specifically, a software-only computer, and more commonly known as a virtual computer ). This
description includes when planning and implementing custom data types, custom components,
custom controls, custom libraries, and specialized tools and frameworks.
For this text, we are using a .NET 5 implementation of the CLR for the sample projects and
respective source code.
You can check for the most up-to-date versions of .NET 5 at the official Microsoft website:
https://dotnet.microsoft.com/download/dotnet/5.0.
You can also use GitHub to access the source code of the runtime, libraries, and frameworks made
using the CLR components and technologies and BCL fundamental library, as we have with Windows
Forms (Microsoft Windows only), Windows Presentation Foundation (Microsoft Windows only),
ASP.NET Core (Windows, Apple MacOS, Linux), and the .NET SDK Installer:
https://github.com/dotnet/runtime
https://github.com/dotnet/aspnetcore
https://github.com/dotnet/winforms
https://github.com/dotnet/wpf
https://github.com/dotnet/installer
Independently or together, these abstract aspects focus on management of data types. So,
reasonably, that form of environment and its components is known as a managed environment .
As mentioned previously, in this book we use a .NET 5 implementation of the CLR for the sample
projects and respective source code. So, whenever you see CLR mentioned, this means the .NET 5
running on Microsoft Windows 10 2004 and Microsoft Visual Studio 2019 16.7.3 or more recent
(Community, Professional, Enterprise). The following programming languages are used in this book:
C#
MSIL
For example, when we are developing some application and choose the System.String
reference type, we are using one of the fundamental types available through the BCL.
However, the string reference type exists only because the CTS has the string fundamental built-
in type defined on it, which is one of the platform-specific fundamental built-in types upon which
string operations are built. In fact, the string content (value of) in any instance is made up of a
sequence of values of the CTS char platform fundamental built-in type, which is System.Char
fundamental data type in the BCL. These platform fundamental built-in types, BCL fundamental types,
and any other types derived or based on them follow the rules described by the unified type system.
In the CLI specification, this unified type system is the CTS, which describes rules about
conceptual, structural, and behavioral elements that must be followed by the CLI itself and specialized
tools (such as compilers and runtime environments).
You’ll learn more information about these types in Chapter 2 and in discussions about the CLR
throughout this book. For now, though, Table 1-1 shows the types defined by the CTS and described by
the metadata.
System.Object object
System.String string
System.Single float32
System.Double float64
System.SByte int8
System.Int16 int16
System.Int32 int32
System.Int64 int64
System.IntPtr native int
System.TypedReference typedref
System.Byte unsigned uint8
A type system model describes the necessary rules related to each type’s conceptual, structural,
and behavioral characteristics.
A value is a bit pattern used to represent types such as numbers (for example, integer numbers and
float-pointing numbers).
Listing 1-4 shows examples in C# for two variables for instances of the System.UInt32 BCL
value type (and not a simple value).
Remember that this way of work is defined by CTS and supported by VES in the CLR. From the
perspective of the type system and execution environment, it is necessary that an object be declared,
defined, and implemented to work within the CLR.
Table 1-3 describes the fundamental built-in types defined by CTS. As the table shows, the root
object type is accessible through the object keyword of the CIL. So that programming languages
such as C#, C++/CLI projection, F#, VB.NET, and others can access this root object type of the
platform, there is a library of fundamental types that is part of the CLI specification. This foundational
library is the BCL.
This root object type is the System.Object reference type. When declaring a variable of the
object type (CTS model definition) or System.Object (BCL) reference type using any high-level
programming language such as C#, C++/CLI projection, F#, VB.NET, and so on, the compiler generates
an intermediate code using the object keyword of the CIL. Table 1-4 summarizes and helps you
understand and memorize this sequence in a straightforward way.
.NET Module
When we use C++ to write code, the result of the compiled and linked code is a binary file in a specific
format. In this case, we are working with PE/COFF (Portable Executable / Common Object File
Format), which is used by the Microsoft Windows operating system. When we use C# to write code, or
when we use any other programming language or group of extensions that adhere to the CLI
specification, the resulting binary file is in the same PE/COFF format. However, that resulting binary
file has some data structures changed/included to support the requirements described by CLI
specification and aspects of the Microsoft Windows operating system. This is called the CLI PE/COFF
module.
Currently, on Microsoft Windows, the CLI PE/COFF module can have .EXE, .DLL, .netmodule,
.WinMD, and .UWP extensions created and recognized by the operation system or development tools.
In addition, it can have any other extension that can be registered and recognized by the operating
system or specialized tools (for software development or not).
In fact, the use of an extension is not required, but it is a good practice and the accepted standard.
If we are using .NET 5 or .NET Core (not the old Windows-only .NET Framework) in a different
operating system and on a different hardware platform, the extensions and file formats used are
specific to such software and hardware environments. However, the fundamental structural resources
defined in CLI as a starting point are the same.
One VES responsibility is to load the CLI PE/COFF modules. Doing so includes verifying some
structural rules about the file format and guaranteeing that all information is as expected. The VES
uses the metadata information in the CLI PE/COFF modules to verify that the structural aspects are
recognized by the rules that it knows as valid, required, or optional. If the structural elements exist
and are valid, the next step is to apply the rules based on the nature of the elements and the context of
use.
For example, if the element is a managed type, the execution system needs to verify whether it is a
value type or a reference type.
If the element is an assembly reference type, one responsibility of this type is to describe various
characteristics of the managed module (structural and behavioral), such as the relationships it has
with other managed modules and what managed types are in it (and in any other managed module).
.NET Assemblies
People often wonder what a .NET assembly is exactly. Put simply, and as defined and described by the
CLI, an assembly is a logical unit for management and deployment of resources designed to work
together. In an implementation of CLR, assemblies can be static or dynamic.
Static Assemblies
Static assemblies are those stored in a storage device, such as a typical hard disk. In Microsoft
Windows, the file format of each module is the CLI PE/COFF. These assemblies have typical .NET 5
types and other specialized resources (audio/video files, localization support files, images, and
custom files created specifically for the application), depending on the purpose of each application.
.NET 5 and .NET Core include the following assemblies and modules, for example:
Assembly mscorlib
Module mscorlib.dll
Module System.Runtime.dll
Module netstandard.dll
Assembly System.Activities (part of Microsoft Windows Workflow Foundation)
Module System.Activities.dll
Assembly System.Diagnostics.Debug
Module System.Diagnostics.Debug.dll
Module System.dll
Module netstandard.dll
Dynamic Assemblies
Dynamic assemblies are created dynamically at runtime and are created via specialized API calls of
.NET 5/Core. These dynamic assemblies are created and executed directly in memory. However, the
dynamic assembly can be saved in a storage device, but only after being executed.
In a typical project, though, we have many files—binary files with executable code or binary files
with other types of data (for example, images)—that are part of the software. Therefore, the
description, verification, and reinforcement of the relations and dependencies among them are made
in part by the metadata.
Metadata is partly responsible for making resources available to perform these tasks.
2. Open (as administrator) one of the developer command prompts installed and configured by
Microsoft Visual Studio 2019.
3. Copy the following sequence of MSIL code into the file RVJ.ProDotNETCustomLibs.il and save the
file:
.assembly RVJ.ProDotNETCustomLibs.Buffers {
.ver 1:0:0:0
}
4. In the developer command prompt, write the following command:
If the code compiles without error, the output will be a binary file with the name
RVJ.ProDotNETCustomLibs.dll.
By following these steps, we have created a single-file static assembly, with only the assembly
manifest.
ildasm RVJ.ProDotNETCustomLibs.dll
With the module RVJ.ProDotNETCustomLibs.dll loaded by the ILDasm.exe tool, we see the
screen shown in Figure 1-5.
Now double-click in the manifest. A new window will open with information about the assembly
manifest, as shown in Figure 1-6.
Figure 1-6 ILDASM showing the assembly manifest of a single-file static assembly
Implementing the entrypoint Method
We have created a single-file static assembly, with only the assembly manifest. If we want to create an
.EXE, we need to change the source code. Using the same RVJ.ProDotNETCustomLibs.il, update the
source code to include a managed method that is the entry point:
.ver 1:0:0:0
.entrypoint
ret
}
As you can see, the name of the .entrypoint method does not need to be main.
To build this code, use the following command:
After the code compiles without error and with the binary generated, we can use the ILDasm.exe
tool to load the module RVJ.ProDotNETCustomLibs.exe, and then we have more than just the
assembly manifest, as shown in Figure 1-7.
As shown in Figure 1-8, we have created a single-file static assembly, with the assembly manifest
and one method (in this case, the entry-point method). When RVJ.DotNETProCustomLibs.exe
runs, it runs like any other .NET managed executable.
Figure 1-8 ILDASM showing a single-file static assembly, with the assembly manifest and one managed method
Listing 1-5 shows an example of managed instructions from one of the sample projects that comes
with the companion content of this book. The .module directive indicates the name of the binary
module (in this case, RVJ.ProDotNETCustomLibs.exe). The .assembly directive describes
which assemblies make this a logical unit of management and deployment of resources designed to
work together. The .assembly RVJ.ProDotNETCustomLibs.Buffers (without the extern
keyword) describes that this assembly is in the current module. The use of .assembly extern
directive describes to the assembly the types that your .assembly or .module are referencing.
For example, .assembly extern System.Runtime indicates that the assembly
RVJ.ProDotNETCustomLibs.Buffers is using one or more types of the assembly mscorlib.
The highlighted CIL instructions are the same that you can read in the
RVJ.ProDotNETCustomLibs.dll or RVJ.ProDotNETCustomLibs.exe modules. Chapter 2
discusses these and other instructions in more detail (with even fuller detail following in subsequent
chapters).
.assembly RVJ.ProDotNETCustomLibs.Buffers
{
.ver 1:0:0:0
}
.module RVJ.ProDotNETCustomLibs.exe
.imagebase 0x00400000
.file alignment 0x00000200
.stackreserve 0x00100000
.subsystem 0x0003 // WINDOWS_CUI
.corflags 0x00000001 // ILONLY
.method public static void MyEntryPointMethod() cil managed {
.entrypoint
// Code size 1 (0x1)
.maxstack 8
IL_0000: ret
Random documents with unrelated
content Scribd suggests to you:
geluk mocht hebben, kwamen ook de tijgers, die van de kleine tot de
groote hetzelfde deden en … eindelijk de slangen, die, na ook met haar
tong haar plicht gedaan te hebben, langzaam wegkropen. Met dit alles
ging geruimen tijd voorbij, en eerst met het aanbreken van den dag was
aan den optocht een einde gekomen, zoodat de man met zijn
geweeklaag kon ophouden.
Toen het goed dag was geworden, zag hij een vreemde gestalte naar
zich toekomen. Het was Wau-oeta, die een vreemdsoortigen pijl in de
hand had. „Zoo, waart gij het”, zei ze, „die al dat lawaai van nacht
maakte en mij uit den slaap hield?” „Ja”, antwoordde de man, „ik was
het”. „Wel”, zei Wau-oeta, „kijk eens langs je arm, van je schouder tot je
hand”. Hij keek, en zag dat hij met een soort schimmel 82 bedekt was. Hij
keek ook naar zijn anderen arm en zag precies hetzelfde. Toen hij van
Wau-oeta gehoord had, dat het deze schimmel was, die hem zoo
ongelukkig op de jacht maakte, wreef hij zijn armen goed af.
De pijl van Wau-oeta zag er, zooals ik zei, zeer vreemd [161]uit. Hij was
in drie of vier stukken gebroken 83 en ieder stuk was gespleten. Wau-
oeta ruilde dezen pijl voor den zijnen en verzocht hem, den hare te
willen probeeren om naar een lange liaan te schieten, die op grooten
afstand naar beneden hing, en .… ja, de pijl trof doel. Toen hij weêr den
pijl op den boog zette, vroeg Wau-oeta hem in de lucht te willen
schieten, en .… onbegrijpelijk, in welke richting hij ook zijn pijl
wegschoot, telkens als hij de aarde bereikte, raakte hij een dier: eerst
een Doroquara, en zoo voort in dezelfde volgorde, als waarin de vogels
hem aan zijn voet hadden gepikt, tot den powies* toe. En het vreemde
was, dat als hij schoot, hij zelf den pijl niet kon zien.
Onze vriend keerde nu naar zijn twee vrouwen terug, en natuurlijk werd
nu zijn naam, dien hij reeds wegens het dooden van Tobe-horo-anna
had, nog veel grooter. Iedereen werd echter nieuwsgierig, om te weten,
waar hij die kennis vandaan had gekregen en probeerde hem uit te
hooren, maar hij weigerde, trouw aan zijn gegeven woord, iets te
zeggen. Zijn schoonbroêrs dachten: laten wij onzen tijd afwachten, en
toen er een groot paiwarri-feest zou plaats hebben, haalden zij hem
over, dit bij te wonen; en … het is al weêr dezelfde geschiedenis: drank
werd zijn verderf. Zijn tong kwam los en hij vertelde alles wat er
gebeurd was. Den [162]volgenden morgen, toen hij weêr geheel was
bijgekomen, wilde hij, als gewoonlijk, zijn pijl grijpen, die Wau-oeta hem
gegeven had, maar zijn vroegere pijl lag er weêr voor in de plaats—en
van dat oogenblik was hij al zijn geluk weêr kwijt.
Maar dit aardsche paradijs veranderde, toen aan onze kusten schepen
vol strijders verschenen, aan wier hoofd stond een man, genaamd
Paira-oende of Paira-oendepo, d.w.z. Letterhoutstomp. Hij was een
blanke, die de algemeene opmerkzaamheid tot zich trok door zijn
vreemd uiterlijk; zijn mond bevond zich nl. ter plaatse, waar bij gewone
menschen de borst moet zijn. 84
Lang geleden, voor nog Paramaribo was gesticht 90, bevond zich ter
plaatse, waar nu het Fort Zeelandia ligt, de hoofdplaats der
Arowakken 91. Een zekere Arimoribo was hun opperhoofd; hij woonde
op de plaats van het tegenwoordige Gouvernementshuis. Een in de
nabijheid in de Suriname-rivier mondende kreek werd Parimoribo
genoemd (d.i. kreek van Arimoribo 92).
Het ontbrak Arimoribo niet aan krijgsvolk. Op zijn wenk greep heel de
stam naar de wapenen. Dit mocht [166]echter niet gebeuren, wanneer
niet de piaiman was geraadpleegd en de beschermgeesten goed
gestemd schenen. Tijdens een groot feest nu begon onder de
bedwelming der feestvreugde de gebruikelijke schildwacht, een op een
staak gestoken houten raaf 93, eensklaps te weeklagen, welk
onheilspellend teeken de vreugde voor een onbeschrijfelijk misbaar
deed plaats maken. Allen sprongen op en ziet .… op de rivier naderden
schepen met zeilen van ongekende grootte. Zulke dingen hadden de
Indianen nog nooit gezien. Meer verbaasd dan bevreesd vroegen zij
zich af, wat voor wezens dat wel konden zijn, die met zulke reusachtige
vleugels zich over het water heen bewogen. Het moesten reusachtige
vleermuizen zijn, besloten ten slotte de wijzen onder hen. Maar die
vleermuizen naderden en spoedig bleek het, dat zij soldaten en ook
vuurwapenen met zich meevoerden. Voor de eerste maal maakten de
Indianen met blanke menschen kennis.
Het sprak van zelf, dat de piaimannen onmiddellijk aan het werk gingen,
want er was immers geen krachtiger middel van tegenweer dan de piai-
kunst. Vóór alles moest deze worden aangewend; en zóó krachtig
slaagde deze, dat drie schepen tot zinken werden gebracht. Hoewel de
Indianen ook van hun pijlen gebruik maakten, moesten zij zich, toen
hun voorraad verschoten was, in de bosschen terugtrekken. Van dien
tijd dagteekent het, dat de Indianen zich in onderaardsche woningen
gingen verschuilen, zooals er nog heden ten dage te Onoribo en Topibo
aan de Para 94 bestaan. Deze woningen bestonden echter reeds in oude
tijden, toen de vaderen hunner [167]vaderen het land bewoonden 95 en
de seizoenen niet waren zooals zij thans zijn 96. Want telkens als de
droge tijd intrad, heerschte er een zóó ontzettende koude over de
wereld, dat iedereen er van bibberde en de voorvaderen der Arowakken
zich genoodzaakt zagen, bedoelde holen te graven, teneinde zich tegen
de koude te beschermen 97. Wat kwamen deze nu aan het nageslacht
als kostbare schuilplaatsen te stade!
Jorobodie was een dracht van niet meer dan drie weken, die zich
wonderbaarlijk snel ontwikkelde, en wiens optreden algemeen ontzag
inboezemde. Hij toog ten strijde tegen de blanken, die niets tegen hem
vermochten, en versloeg hen. Geen vuur deerde hem, geen staal trof
hem, geen gewicht was zwaar genoeg, om hem te doen zinken. Alle
banden werden door hem verbroken en toen de blanken hem eindelijk
in een vat hadden gesloten, en hem aan het water hadden
prijsgegeven, deed hij een tijger tot [168]zich naderen, stak hem door
een gaatje zijn staart toe en zoo werd hij overal heengesleept, waar hij
maar wilde. Nooit werd een zonderlinger vaartuig door zulk een dier, en
nog wel onbeteugeld, voortgetrokken.
Zooals het mannen betaamt, wien men een buitengewone roeping
toedicht, was ook Jorobodie in ieder opzicht een wonder van kracht en
slimheid 99. Zijn voedsel bestond uitsluitend uit krabben, en dit sober
voedsel maakte hem tot den man van kracht, den trots zijner natie.
Wee! den Caraïb, die hem aandurfde! Wie slechts de hand uitstak, was
een man des doods! Zijn groote verdienste voor de Arowakken bestond
echter hierin, dat hij de schrik der blanken was. Deze toch waren
toenmaals hunne grootste vijanden 100, die hen niet alleen tot slaven
maakten, maar hen ook naar zee voerden, waar zij, na met teer
bestreken te zijn, levend verbrand werden.
Dit alles hield echter op, toen de menschen slecht werden. Geen kwaad
toch kan ongestraft blijven. Toen bijv. eens een Indiaan van den kapitein
een boot had geleend en deze niet terug bracht, werd hij gestraft. Hij
veranderde n.l. in een duizendpoot*, en werd vader van die millioenen
veelbeenige stekelige dieren, die nu door iedereen zoozeer gevreesd
worden. [169]
Het ergste van alles voor de Indianen was wel, dat die ellendige
blanken zich aan dit alles niet storen wilden, zoodat zij het laatste
overblijfsel van den gelukstaat verloren deden gaan. Welk een schat
was voor hen in die omstandigheden een man van zulk een overwicht
als Jorobodie was!
Maar helaas! hij kwam ten val en wel door een vrouw, die hij geschaakt
had 102 en waardoor hij den haat zijner natie op den hals haalde. Het
aannemen van een spin, hem door zijn vrouw aangeboden, richtte
Jorobodie ten gronde, want nauwelijks had hij deze met de woorden
„zoek uwen weg”, door haar uitgesproken, aangenomen of Jorobodie
was niet meer.
No. 40. Uitdrijven van een priester uit den Indiaanschen hemel.
Penalo ame weipiompo. Eertijds enz. voor nog de grootvader van mijn
grootmoeder geboren was, werden de oevers der Boven-Marowijne
door talrijke Indianen bewoond. Maar hun aantal slonk bij den dag, wijl
zij veel te lijden hadden van allerlei booze geesten, die zich niet door
piaien lieten verdrijven. Vele Roodhuiden verlieten dan ook de behekste
streken, ten einde zich te begeven naar Mazwano, een plaats, die zij
reeds menigmaal in hunne droomen hadden bezocht. Ontelbare
Roodhuiden woonden daar in kampen, die elken morgen schitterend
verlicht werden door de morgenzon.
In het midden stond het wonderkamp van Tamoesi*. De [171]grond was
wit als het glinsterende witte kwartszand der savanne. Wit was ook de
kleur van de wateren, die door dit aardsche Paradijs vloeiden.
De Indiaansche God zag er geweldig uit. Zijn huid had, zooals van zelf
spreekt, een roode kleur. Hij was versierd met vederen, franjes en
kralen. In zijn hand hield Hij een ongehoord groote malaka*, waarin zich
de geesten bevonden van alle wezens; de steel was als een Boa
bewerkt.
Wanneer Tamoesi aan het piaien was, kon het geluid dagreizen ver
gehoord worden. Priesters en andere Booze Geesten vluchtten dan
ijlings naar de duistere wateren, zoodat de omtrek der Mazwano steeds
rein en wit bleef. Daar toch heerschte slechts gelukzaligheid. Men dronk
en danste er den geheelen dag. Overal liepen beeldschoone vrouwen
den mannen achterna. Ziekten en sterfgevallen kwamen er nooit voor,
terwijl Tamoesi van tijd tot tijd nederdaalde, ten einde met zijn geliefde,
roode kinderen feest te vieren. Geen wonder, dat de Indianen, die na
het doorstaan van vele duistere gevaren dit lustoord wisten te bereiken,
geen lust gevoelden tot hun familie terug te keeren.
Bij het aanschouwen van dit, in zijn oogen zoo vreeselijk Paradijs, kon
de Priester niet nalaten een zucht te slaken. De piaimannen lieten hem
evenwel geen tijd tot bedenken. „Welkom vriend, in de Mazwano”,
riepen zij hem toe, „gij zult hier een heerlijk leventje hebben”.
Toen hij den volgenden morgen wakker werd, voelde de Pater iets
naast zich in de hangmat. Hij keek en daar lag een beeldschoon
Indiaansch meisje. Vlug (volgens de verteller uiterst vlug) sprong hij op
en wilde hij wegvluchten. Maar de piaimannen grepen hem aan, en
riepen hem toe: „Nu kent gij de genoegens van het Paradijs; wilt gij hier
blijven?”
De mannen van het dorp liepen hen echter tegemoet, en den Pater
herkennende, riepen zij uit: „Wij hebben U wel gewaarschuwd, niet naar
de Mazwano te gaan; maar gij hebt ons niet willen gelooven”.
„Gij hebt gelijk”, antwoordde de Priester, en hij vertelde alles wat hem
daar was overkomen; toen hij eindelijk was gekomen aan het
Indiaansche meisje, dat hij bij zijn ontwaken in de hangmat gevonden
had, barstten zij allen in een schaterlach uit. Hun verstand ging het te
boven, dat iemand z o o i e t s kon weigeren.
No. 41. Uitdrijving der Indianen uit den Hemel der Paters.
Penalo ame weipiompo. Eertijds, voor nog mijn grootvader geboren was
enz. was een Roodhuid bezig, boomen om te hakken, teneinde een
kostgrond aan te leggen. Het werk vermoeide hem, zoodat het zweet
hem langs het lichaam liep, en de mooie roode koesoewe*, waarmede
hij zich had ingesmeerd, geheel werd weggewasschen. Hij zuchtte luide
en verwenschte zijn ongelukkig lot. Doch ziet, als uit de lucht
verschenen twee mannen, die hem medelijdend aanzagen. „Waarom
zucht gij zoo”, vroegen zij hem. „Ach”, luidde het antwoord, „ziet gij niet,
hoe hard ik moet werken? En als ik des nachts wil uitrusten, gonzen de
muskieten mij om de ooren; ik ben de ongelukkigste Indiaan van mijn
stam.”
„Wel”, zeiden de vreemdelingen, „we zijn met uw lot begaan, kom met
ons meê; want we zijn juist op weg naar een plaats, waar niemand
behoeft te werken.”
Zij werden gedoopt en herdoopt. Eindelijk bereikten zij den zetel van
den Tamoesi der Blanken. Hij was zóó oud als de Roodhuiden nog nooit
een mensch hadden gezien. Een lange, witte baard hing tot aan zijn
voeten, maar Zijn hoofd was kaal. Hij zat op een soort van hobbelstoel,
prachtig versierd met tijger-, boa- en stinkvogelkoppen. Aan Zijn zijde
lag een groot kruisbeeld. Zijn lichaam was gehuld in een langen rok,
zooals de Paters ze thans dragen.
Zij gingen verder. Langs den weg lagen eenige Indianen te slapen. De
Roodhuiden knikten elkander veelbeteekenend toe, doch zwegen. Zij
kwamen vervolgens bij plaatsen, waar visschen van zelf uit de
masoewa’s* aan de barbakot gingen hangen. Pijlen, door niemand
afgeschoten, snorden door de lucht en troffen wegvluchtende Tapirs en
Agoeti’s, die, na hun eigen vleesch in stukken te hebben gesneden,
zich zelf kookten en roosterden. Enkele Indiaansche vrouwen lagen
naast de matapi’s*, maar de cassave-wortels schrapten zich zelf,
persten zich zelf uit, en sprongen dan in de pannen, om gebakken te
worden.
De Indianen waren verrukt; en dat vooral, toen Tamoesi aan elk een
mooie vrouw schonk, en hij op staanden voet een huwelijk voltrok. Af en
toe gingen zij herbergen binnen; en elken keer kwamen zij er vroolijk
weêr uit. Eindelijk begon een der Roodhuiden met onvaste schreden te
loopen, daarbij onbetamelijke liedjes zingende en probeerende,
Tamoesi op heel familiare wijze te omhelzen.
Tamoesi gaf nu bevel, alle sodawater, limonade, kassiri enz. bij Hem te
brengen. Van alles dronk hij een kalebas vol, maar, daar Hij geen
verstand van zulke dingen had, verklaarde Hij, dat alles in orde was, en
dat de ververschingen zeer goed smaakten! En toch, zoowel het
sodawater als de limonade en de kassiri waren even rijk aan alkohol als
zuivere jenever. Geen wonder dan ook, dat de Roodhuiden zich
bedronken; de verleiding was te groot voor hen. De Priesters en andere
Blanken dronken met mate, zoodat zij nooit dronken werden.
Tamoesi gebood daarom den Roodhuiden, dat zij onmiddellijk den
Hemel moesten verlaten. Alle Caraïben, Arowakken, Warrau’s enz.
vertrokken, en aan de poort riep Tamoesi hen nog na: „Door uw
dronkenschap hebt gij het Paradijs verloren; thans zult ge werken en
het zweet, dat uit uw lichaam stroomt, zal wegwasschen de koesoewé*,
waarmeê ge u besmet. Maar, als ge niet meer drinkt, zal de poort weêr
voor u geopend worden.”
In oude tijden kwamen de Indianen veel talrijker voor dan thans. Zij
leefden tevens gelukkiger, want er was overvloed van wild, terwijl het in
de rivieren en kreken krioelde van visschen.
Zij vonden daar alles in rep en roer, daar Kenaima’s* zich in den omtrek
vertoond hadden.
Maar de Caraïben, vermoeid van hun langen tocht, hadden rust noodig
en de piaiman gelastte, dat, terwijl tien man sliepen, de overigen
zouden waken. Daartoe moesten zij langwerpige kijkgaten in de
wanden der hut maken.
Wat de kapitein ook deed, het Indiaansche opperhoofd liet zich niet
bepraten. Hij vertrok dan ook en keerde na eenigen tijd met den koning
terug. Deze begon niet terstond met de Indianen te onderhandelen,
doch liet hen eerst flink drinken. Toen allen dan ook smoordronken
waren, vroeg hij hun: „geef mij dit land ten geschenke”. En zij
antwoordden: „Neem het vriend, maar geef ons drank”.
Onder de blanken ontstond nu een hevige paniek. Zij vluchtten naar alle
richtingen; overal floten onzichtbare pijlen 108, door onzichtbare strijders
afgeschoten, door de lucht, waardoor vele soldaten gedood werden.
Het gebeurde werkelijk zoo, want toen de blanken, vol woede over den
dood hunner kameraden, de kreek wilden opvaren, werden hunne
oogen verduisterd door het toovermiddel, zoodat zij de monding van het
kreekje niet konden zien.
Wij, Arowakken hebben in den strijd met de Kalienja’s het laatste woord
gehad. Eens was het, dat wij onze vijanden in een hinderlaag wisten te
lokken. Boven een waterval hadden wij drijvende boomstammen
geplaatst, waarachter een deel onzer strijders verborgen was, terwijl de
overigen zich langs den oever verscholen hadden.
Op een lange reis naar het land der steenen bijlen* kwam een groote
boot, geheel gevuld met Indianen, van een landingsplaats. Deze
bevond zich in het gebied van den vleermuizenstam, zoodat de oude
man, die het gezelschap leidde, zijn bende op het hart drukte, hunne
hangmatten niet tusschen de boomen op te hangen (zooals de Indianen
in den drogen tijd gewoon zijn te doen), omdat de vleermuizen er
buitengewoon groot waren. Hij ried den mannen daarom aan, een
gesloten tijdelijke hut te bouwen, dus een aan alle kanten gesloten
banab*. Een der jongeren, die wat vadsig was uitgevallen, had er geen
lust in, de anderen met den bouw van de schuilplaats te helpen. Hij
beweerde, dat hij het niet geloofde, dat de vleermuizen, al waren zij ook
nog zoo groot, hem vóór het aanbreken van den dag iets zouden doen.
Tegen de redeneeringen van den ouden man in, weigerde hij in de hut
te kruipen, en nadat hij zijn hangmat tusschen twee boomen had
Welcome to our website – the ideal destination for book lovers and
knowledge seekers. With a mission to inspire endlessly, we offer a
vast collection of books, ranging from classic literary works to
specialized publications, self-development books, and children's
literature. Each book is a new journey of discovery, expanding
knowledge and enriching the soul of the reade
Our website is not just a platform for buying books, but a bridge
connecting readers to the timeless values of culture and wisdom. With
an elegant, user-friendly interface and an intelligent search system,
we are committed to providing a quick and convenient shopping
experience. Additionally, our special promotions and home delivery
services ensure that you save time and fully enjoy the joy of reading.
textbookfull.com