Fixes typos in many different English articles

Signed-off-by: Marcel Ribeiro-Dantas <mribeirodantas@seqera.io>
This commit is contained in:
Marcel Ribeiro-Dantas 2022-12-10 12:05:34 -03:00
parent 354fe6fe7d
commit bba9f7df21
No known key found for this signature in database
GPG Key ID: FA073296C8705001
37 changed files with 88 additions and 88 deletions

View File

@ -44,7 +44,7 @@ for, which provides an excellent UI.
#### Cons
* It is an agent-less tool - every agent consumes up to 16MB ram - in some
environments, it may be noticable amount.
environments, it may be noticeable amount.
* It is agent-less - you have to verify your environment consistency
'on-demand' - there is no built-in mechanism that would warn you about some
change automatically (this can be achieved with reasonable effort)
@ -691,7 +691,7 @@ to specify the username.
Note: You may like to execute Ansible with `--ask-sudo-pass` or add the user to
sudoers file in order to allow non-supervised execution if you require 'admin'
privilages.
privileges.
[Read more](http://docs.ansible.com/ansible/latest/become.html)

View File

@ -256,7 +256,7 @@ int main (int argc, char** argv)
// Floating-point numbers are defined by IEEE 754, thus cannot store perfectly
// exact values. For instance, the following does not produce expected results
// because 0.1 might actually be 0.099999999999 insided the computer, and 0.3
// because 0.1 might actually be 0.099999999999 inside the computer, and 0.3
// might be stored as 0.300000000001.
(0.1 + 0.1 + 0.1) != 0.3; // => 1 (true)
// and it is NOT associative due to reasons mentioned above.

View File

@ -68,7 +68,7 @@ False not. # True
###########################################
# You may assign values to the current scope:
var name is value. # assignes `value` into `name`
var name is value. # assigns `value` into `name`
# You may also assign values into the current object's namespace
my name is value. # assigns `value` into the current object's `name` property
@ -146,7 +146,7 @@ add(3, 5). # 8
3 `add` 5. # 8
# This call binds as such: add[(3), 5]
# because the default fixity is left, and the default precedance is 1
# because the default fixity is left, and the default precedence is 1
# You may change the precedence/fixity of this operator with a pragma
#:declare infixr 1 add

View File

@ -12,7 +12,7 @@ all began with Direct, such as Direct3D, DirectDraw, DirectMusic, DirectPlay, Di
Direct3D (the 3D graphics API within DirectX) is widely used in the development of video games for Microsoft
Windows and the Xbox line of consoles.<sup>[1]</sup>
In this tutorial we will be focusing on DirectX 9, which is not as low-level as it's sucessors, which are aimed at programmers very familiar with how graphics hardware works. It makes a great starting point for learning Direct3D. In this tutorial I will be using the Win32-API for window handling and the DirectX 2010 SDK.
In this tutorial we will be focusing on DirectX 9, which is not as low-level as it's successors, which are aimed at programmers very familiar with how graphics hardware works. It makes a great starting point for learning Direct3D. In this tutorial I will be using the Win32-API for window handling and the DirectX 2010 SDK.
## Window creation
@ -125,7 +125,7 @@ bool InitD3D(HWND hWnd) {
pp.hDeviceWindow = hWnd; // associated window handle
pp.Windowed = true; // display in window mode
pp.Flags = 0; // no special flags
// Variable to store results of methods to check if everything succeded.
// Variable to store results of methods to check if everything succeeded.
HRESULT result{ };
result = _d3d->CreateDevice(D3DADAPTER_DEFAULT, // use default graphics card
D3DDEVTYPE_HAL, // use hardware acceleration
@ -144,7 +144,7 @@ bool InitD3D(HWND hWnd) {
viewport.Y = 0; // ..
viewport.Width = clientRect.right; // use the entire window
viewport.Height = clientRect.bottom; // ..
viewport.MinZ = 0.0f; // minimun view distance
viewport.MinZ = 0.0f; // minimum view distance
viewport.MaxZ = 100.0f; // maximum view distance
// Apply the created viewport.
result = _device->SetViewport(&viewport);
@ -157,7 +157,7 @@ bool InitD3D(HWND hWnd) {
// ...
// Back in our WinMain function we call our initialization function.
// ...
// Check if Direct3D initialization succeded, else exit the application.
// Check if Direct3D initialization succeeded, else exit the application.
if (!InitD3D(hWnd))
return -1;
@ -197,7 +197,7 @@ Let's create a vertex buffer to store the vertices for our triangle
#include <vector>
// First we declare a new ComPtr holding a vertex buffer.
ComPtr<IDirect3DVertexBuffer9> _vertexBuffer{ };
// Lets define a funtion to calculate the byte size of a std::vector
// Lets define a function to calculate the byte size of a std::vector
template <typename T>
unsigned int GetByteSize(const std::vector<T>& vec) {
return sizeof(vec[0]) * vec.size();
@ -253,7 +253,7 @@ if (!InitD3D(hWnd))
return -1;
// Define the vertices we need to draw a triangle.
// Values are declared in a clockwise direction else Direct3D would cull them.
// If you want to diable culling just call:
// If you want to disable culling just call:
// _device->SetRenderState(D3DRS_CULLMODE, D3DCULL_NONE);
std::vector<VStruct> vertices {
// Bottom left
@ -274,7 +274,7 @@ if (!(_vertexBuffer = CreateBuffer(vertices)))
Before we can use the vertex buffer to draw our primitives, we first need to set up the matrices.
```cpp
// Lets create a new funtions for the matrix transformations.
// Lets create a new functions for the matrix transformations.
bool SetupTransform() {
// Create a view matrix that transforms world space to
// view space.
@ -338,7 +338,7 @@ if (FAILED(result))
// Create a world transformation matrix and set it to an identity matrix.
D3DXMATRIX world{ };
D3DXMatrixIdentity(&world);
// Create a scalation matrix scaling our primitve by 10 in the x,
// Create a scalation matrix scaling our primitive by 10 in the x,
// 10 in the y and keeping the z direction.
D3DXMATRIX scaling{ };
D3DXMatrixScaling(&scaling, // matrix to scale
@ -499,7 +499,7 @@ std::vector<D3DVERTEXELEMENT9> vertexDeclDesc {
0, // byte offset from the struct beginning
D3DDECLTYPE_FLOAT3, // data type (3d float vector)
D3DDECLMETHOD_DEFAULT, // tessellator operation
D3DDECLUSAGE_POSTION, // usage of the data
D3DDECLUSAGE_POSITION, // usage of the data
0 }, // index (multiples usage of the same type)
{ 0,
12, // byte offset (3 * sizeof(float) bytes)

View File

@ -254,7 +254,7 @@ $docker build <path-to-dockerfile>
```
## Push your image to DockerHub
If you want your application's Docker image to be made publically available for
If you want your application's Docker image to be made publicly available for
any Docker user, you might wanna push it to the [Docker Hub](https://hub.docker.com/) which is a
registry of Docker images. Make sure you have an account with a username and
password on Docker Hub.

View File

@ -12,7 +12,7 @@ It is used by circuit designers to simulate circuits and logic prior to wiring a
HDL allows circuit designers to simulate circuits at a high level without being connected to specific components.
## Basic building blocks & introduction to the language---
This programming language is built by simulating hardware chips and wiring. Normal programming functions are replaced with specialized chips that are added to the current wiring desing. Every base chip must be written as it's own file and imported to be used in the current chip, though they may be reused as often as desired.
This programming language is built by simulating hardware chips and wiring. Normal programming functions are replaced with specialized chips that are added to the current wiring design. Every base chip must be written as it's own file and imported to be used in the current chip, though they may be reused as often as desired.
```verilog
// Single line comments start with two forward slashes.
@ -79,7 +79,7 @@ foo(in=a[0..7], out=c); // C is now a 2 bit internal bus
// Note that internally defined busses cannot be subbussed!
// To access these elements, output or input them seperately:
// To access these elements, output or input them separately:
foo(in[0]=false, in[1..7]=a[0..6], out[0]=out1, out[1]=out2);
// out1 and out2 can then be passed into other circuits within the design.

View File

@ -55,7 +55,7 @@ Let's take a look at examples to see the key syntax differences!
Oh wait.. there is! It's called Hjson.
'''
# Backslashes are interpretted as an escape character ONLY in quoted strings
# Backslashes are interpreted as an escape character ONLY in quoted strings
slash: This will not have a new line\n
slash-quoted: "This will definitely have a new line\n"

View File

@ -620,7 +620,7 @@ function isEven(number) {
};
// I put the word "equivalent" in double quotes because a function defined
// using the lambda syntax cannnot be called before the definition.
// using the lambda syntax cannot be called before the definition.
// The following is an example of invalid usage:
add(1, 8);

View File

@ -131,7 +131,7 @@ assert obj5 == {};
```
## Further Reading
There are a few but important concepts that are not touched in this exmaple, including:
There are a few but important concepts that are not touched in this example, including:
- Passing variables from command line: [Parameterize Entire Config](https://jsonnet.org/learning/tutorial.html#parameterize-entire-config)
- Import other jsonnet libraries/files: [Imports](https://jsonnet.org/learning/tutorial.html#imports)

View File

@ -560,7 +560,7 @@ select avg height by sex from t
/ => f | 160
/ => m | 177.5
/ If no aggreation function is specified, last is assumed
/ If no aggregation function is specified, last is assumed
select by sex from t
/ => sex| name age height
/ => ---| -----------------

View File

@ -41,7 +41,7 @@ Evaluation is done via
which is essentially lexically-scoped substitution.
When evaluating the
expression `(λx.x)a`, we replace all occurences of "x" in the function's body
expression `(λx.x)a`, we replace all occurrences of "x" in the function's body
with "a".
- `(λx.x)a` evaluates to: `a`

View File

@ -193,7 +193,7 @@ while condition[0]:
for i in 0 to 10 do:
vector[i] = i
; stanza also supports named labels which can functin as break or return
; stanza also supports named labels which can function as break or return
; statements
defn another-fn ():
label<False> return:
@ -218,7 +218,7 @@ for (x in xs, y in ys, z in zs) do :
println("x:%_, y:%_, z:%_" % [x, y, z])
;xs, ys, and zs are all "Seqable" meaing they are Seq types (sequences).
;xs, ys, and zs are all "Seqable" meaning they are Seq types (sequences).
; the `do` identifier is a special function that just applies the body of
; the for loop to each element of the sequence.
;

View File

@ -198,7 +198,7 @@ M has an execution stack. When all levels of the stack have returned, the progra
With an argument: execute a block of code & add a level to the stack.
```
d ^routine ;run a routine from the begining.
d ^routine ;run a routine from the beginning.
; ;routines are identified by a caret.
d tag ;run a tag in the current routine
d tag^routine ;run a tag in different routine

View File

@ -298,7 +298,7 @@ omitted though.)
- [Subchapter <h3 />](#subchapter-h3-)
```
Nontheless, this is a feature that might not be working in all Markdown
Nonetheless, this is a feature that might not be working in all Markdown
implementations the same way.
## Images

View File

@ -22,13 +22,13 @@ and/or directorie(s) over time.
* Distributed Architecture - Traditionally version control systems such as CVS
and Subversion are a client server architecture with a central server to
store the revsion history of a project. Mercurial however is a truly
distributed architecture, giving each devloper a full local copy of the
store the revision history of a project. Mercurial however is a truly
distributed architecture, giving each developer a full local copy of the
entire development history. It works independently of a central server.
* Fast - Traditionally version control systems such as CVS and Subversion are a
client server architecture with a central server to store the revsion history
client server architecture with a central server to store the revision history
of a project. Mercurial however is a truly distributed architecture, giving
each devloper a full local copy of the entire development history. It works
each developer a full local copy of the entire development history. It works
independently of a central server.
* Platform Independent - Mercurial was written to be highly platform
independent. Much of Mercurial is written in Python, with small performance
@ -56,7 +56,7 @@ any later version.
| changeset | Set of changes saved as diffs |
| diff | Changes between file(s) |
| tag | A named named revision |
| parent(s) | Immediate ancestor(s) of a revison |
| parent(s) | Immediate ancestor(s) of a revision |
| branch | A child of a revision |
| head | A head is a changeset with no child changesets |
| merge | The process of merging two HEADS |
@ -184,7 +184,7 @@ Commit changes to the given files into the repository.
# Commit with a message
$ hg commit -m 'This is a commit message'
# Commit all added / removed files in the currrent tree
# Commit all added / removed files in the current tree
$ hg commit -A 'Adding and removing all existing files in the tree'
# amend the parent of the working directory with a new commit that contains the
@ -341,7 +341,7 @@ $ hg revert -a
Remove the specified files on the next commit.
```bash
# Remove a spcific file
# Remove a specific file
$ hg remove go_away.txt
# Remove a group of files by pattern

View File

@ -111,7 +111,7 @@ gateways and routers.
sub $t2, $t0, $t1 # $t2 = $t0 - $t1
mul $t2, $t0, $t1 # $t2 = $t0 * $t1
div $t2, $t0, $t1 # $t2 = $t0 / $t1 (Might not be
# supported in some versons of MARS)
# supported in some versions of MARS)
div $t0, $t1 # Performs $t0 / $t1. Get the
# quotient using 'mflo' and
# remainder using 'mfhi'

View File

@ -170,7 +170,7 @@ printseven
/# currently, preprocessor statements can be used to make c++-style constants #/
&DEFINE LOOPSTR 20&
/# must have & on either side with no spaces, 'DEFINE' is case sensative. #/
/# must have & on either side with no spaces, 'DEFINE' is case sensitive. #/
/# All statements are scanned and replaced before the program is run, regardless of where the statements are placed #/
FOR LOOPSTR 7 PRINT . ENDFOR /# Prints '7' 20 times. At run, 'LOOPSTR' in source code is replaced with '20' #/

View File

@ -35,7 +35,7 @@ int main() {
context };
window.setVerticalSyncEnabled(true);
window.setActive(true);
// After that we initialise GLEW and check if an error occured.
// After that we initialise GLEW and check if an error occurred.
GLenum error;
glewExperimental = GL_TRUE;
if ((err = glewInit()) != GLEW_OK)
@ -140,7 +140,7 @@ if (logSize > 0) {
}
```
The same is possibile after <code>glLinkProgram()</code>, just replace <code>glGetShaderiv()</code> with <code>glGetProgramiv()</code>
The same is possible after <code>glLinkProgram()</code>, just replace <code>glGetShaderiv()</code> with <code>glGetProgramiv()</code>
and <code>glGetShaderInfoLog()</code> with <code>glGetProgramInfoLog()</code>.
```cpp
@ -194,7 +194,7 @@ void main() {
out vec4 outColor;
void main() {
// We simply set the ouput color to red.
// We simply set the output color to red.
// The parameters are red, green, blue and alpha.
outColor = vec4(1.0, 0.0, 0.0, 1.0);
}
@ -233,7 +233,7 @@ glBufferData(GL_ARRAY_BUFFER, // target buffer
// After filling the VBO link it to the location 0 in our vertex shader,
// which holds the vertex position.
// ...
// To ask for the attibute location, if you haven't set it:
// To ask for the attribute location, if you haven't set it:
GLint posLocation = glGetAttribLocation(program, "position");
// ..
glEnableVertexAttribArray(0);
@ -463,7 +463,7 @@ glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ibo);
glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(iboData[0]) * iboData.size(),
iboData.data(), GL_STATIC_DRAW);
// Next in our render loop, we replace glDrawArrays() with:
glDrawElements(GL_TRIANGLES, iboData.size(), GL_UNSINGED_INT, nullptr);
glDrawElements(GL_TRIANGLES, iboData.size(), GL_UNSIGNED_INT, nullptr);
// Remember to delete the allocated memory for the IBO.
```
@ -535,7 +535,7 @@ glVertexAttribPointer(2, 2, GL_FLOAT, GL_FALSE, 0, nullptr);
// ...
glBindVertexArray(vao);
glBindTexture(GL_TEXTURE_2D, texture);
glDrawElements(GL_TRIANGLES, iboData.size(), GL_UNSINGED_INT, nullptr);
glDrawElements(GL_TRIANGLES, iboData.size(), GL_UNSIGNED_INT, nullptr);
// ...
```
@ -673,7 +673,7 @@ glUniformMatrix4fv(modelLocation, 1, GL_FALSE,
## Geometry Shader
Gemoetry shaders were introduced in OpenGL 3.2, they can produce vertices
Geometry shaders were introduced in OpenGL 3.2, they can produce vertices
that are send to the rasterizer. They can also change the primitive type e.g.
they can take a point as an input and output other primitives.
Geometry shaders are inbetween the vertex and the fragment shader.

View File

@ -29,11 +29,11 @@ function setup() {
}
function draw() {
ellipse(10, 10, 50, 50); // creates a ellipse at the 10px from the left and 10px from the top with width adn height as 50 each, so its basically a circle.
ellipse(10, 10, 50, 50); // creates a ellipse at the 10px from the left and 10px from the top with width and height as 50 each, so its basically a circle.
//remember in p5.js the origin is at the top-left corner of the canvas
if (mouseIsPressed) {
// mouseIsPressed is a boolean variable that changes to true if the mouse buttton is pressed down at that instant
// mouseIsPressed is a boolean variable that changes to true if the mouse button is pressed down at that instant
fill(0); // fill refers to the innner color or filling color of whatever shape you are going to draw next
} else {

View File

@ -131,7 +131,7 @@ Begin
str := 'apple';
bool := true;
//pascal is not a case-sensitive language
//arithmethic operation
//arithmetic operation
int := 1 + 1; // int = 2 overwriting the previous assignment
int := int + 1; // int = 2 + 1 = 3;
int := 4 div 2; //int = 2 division operation where result will be floored

View File

@ -443,7 +443,7 @@ $bar('C'); // Prints "A - B - C"
// You can call named functions using strings
$function_name = 'add';
echo $function_name(1, 2); // => 3
// Useful for programatically determining which function to run.
// Useful for programmatically determining which function to run.
// Or, use call_user_func(callable $callback [, $parameter [, ... ]]);

View File

@ -2,7 +2,7 @@
language: processing
filename: learnprocessing.pde
contributors:
- ["Phone Thant Ko", "http://github.com/phonethantko"]
- ["Phone Than Ko", "http://github.com/phonethantko"]
- ["Divay Prakash", "https://github.com/divayprakash"]
---
@ -256,7 +256,7 @@ line(x1, y1, z1, x2, y2, z2); // In 3D space
// Triangle
triangle(x1, y1, x2, y2, x3, y3);
// Draws a triangle connecting three points defined by coordinate paramters.
// Draws a triangle connecting three points defined by coordinate parameters.
// Rectangle
rect(a, b, c, d, [r]); // With optional parameter defining the radius of all corners
@ -375,7 +375,7 @@ texture(image); // PImage can be passed into arguments for texture-mapping the s
If you want to take things further, there are more things Processing is powered
for. Rendering models, shaders and whatnot. There's too much to cover in a
short documentation, so I will leave them out here. Shoud you be interested,
short documentation, so I will leave them out here. Should you be interested,
please check out the references.
```

View File

@ -59,9 +59,9 @@ compare 3 2 -- GT
true && (9 >= 19 || 1 < 2) -- true
-- Strings
"Hellow" :: String -- "Hellow"
"Hello" :: String -- "Hello"
-- Multiline string without newlines, to run in PSCi use "paste" mode.
"Hellow\
"Hello\
\orld" -- "Helloworld"
-- Multiline string with newlines
"""Hello

View File

@ -193,7 +193,7 @@ are C<print>, C<put> and C<say>.
### Comments
Although Pod blocks are ignored by the Rakudo Raku compiler, everything
indentified as a Pod block will be read and interpreted by Pod renderers. In
identified as a Pod block will be read and interpreted by Pod renderers. In
order to prevent Pod blocks from being rendered by any renderer, use the
`=comment` directive.

View File

@ -688,7 +688,7 @@ say (0 or False); # OUTPUT: «False␤».
my ($a, $b, $c, $d, $e) = 1, 0, False, True, 'pi';
say $a && $b && $c; # OUTPUT: «0␤», the first falsey value
say $a && $b && $c; # OUTPUT: «False␤», the first falsey value
say $a && $d && $e; # OUTPUT: «pi␤», last operand since everthing before is truthy
say $a && $d && $e; # OUTPUT: «pi␤», last operand since everything before is truthy
# `||` returns the first argument that evaluates to `True`.
say $b || $a || $d; # OUTPUT: «1␤»
@ -1965,7 +1965,7 @@ say so 'abbbbc' ~~ / a b* c /; # OUTPUT: «True␤»
say so 'aec' ~~ / a b* c /; # OUTPUT: «False␤», "b"(s) are optional, not replaceable.
# `**` - (Unbound) Quantifier
# If you squint hard enough, you might understand why exponentation is used
# If you squint hard enough, you might understand why exponentiation is used
# for quantity.
say so 'abc' ~~ / a b**1 c /; # OUTPUT: «True␤», exactly one time
say so 'abc' ~~ / a b**1..3 c /; # OUTPUT: «True␤», one to three times

View File

@ -302,7 +302,7 @@ do {
// Recursion is the idiomatic way of repeating an action in Scala (as in most
// other functional languages).
// Recursive functions need an explicit return type, the compiler can't infer it.
// Here it's Unit, which is analagous to a `void` return type in Java
// Here it's Unit, which is analogous to a `void` return type in Java
def showNumbersInRange(a: Int, b: Int): Unit = {
print(a)
if (a < b)

View File

@ -154,7 +154,7 @@ fn learnTypes() void
sys.validate(dyna_array.size() == 1);
// a map that associates a number to a string.
// "map(x)..." reads "map with key of type x and vaue of type..."
// "map(x)..." reads "map with key of type x and value of type..."
var a_map map(string)i32;
a_map.insert("one", 1);

View File

@ -60,7 +60,7 @@ doSomethingWith: argumentObject
Everything here except the `^` involves sending more messages. Event the `ifTrue:` that you might think is a language control structure is just Smalltalk code.
We start by sending `size` to `self`. `self` is the object currently running the code - so in this case it is the myObject we started with. `size` is a very common message that we might anticipate tells us something about how big an object is; you could look it up with the Smalltalk tools very simply. The result we get is then sent the message `>` with the plain old integer 4 (which is an object too; no strange primitive types to pollute the system here) and nobody should be surprised the `>` is a comparison that answers true or false. That boolean (which is actually a Boolean object in Smalltalk) is sent the message `ifTrue:` with the block of code between the `[]` as its argument; obvioulsy a true boolean might be expected to run that block of code and a false to ignore it.
We start by sending `size` to `self`. `self` is the object currently running the code - so in this case it is the myObject we started with. `size` is a very common message that we might anticipate tells us something about how big an object is; you could look it up with the Smalltalk tools very simply. The result we get is then sent the message `>` with the plain old integer 4 (which is an object too; no strange primitive types to pollute the system here) and nobody should be surprised the `>` is a comparison that answers true or false. That boolean (which is actually a Boolean object in Smalltalk) is sent the message `ifTrue:` with the block of code between the `[]` as its argument; obviously a true boolean might be expected to run that block of code and a false to ignore it.
If the block is run then we do some more message sending to the argument object and noting the `^` we return the answer back to our starting point and it gets assigned to `result`. If the block is ignored we seem to run out of code and so `self` is returned and assigned to `result`.

View File

@ -713,7 +713,7 @@ end
#### About [T]CSH:
# * CSH is notorious about its bugs;
# * It was also famous about its advanced interactive mode.
# * TCSH is famous that have the most advanced completition subsystem.
# * TCSH is famous that have the most advanced completion subsystem.
# * TCSH is famous that have the most advanced aliases subsystem; aliases
# can take parameters and often used as functions!
# * TCSH is well known that preferred by people (me too) because of better

View File

@ -165,11 +165,11 @@ but again, they use different HTML markup and thus the distinction.
###. Superscripts and Subscripts use carats and tildes:
Superscripts are 2 ^nd^ to none, but subscripts are CO ~2~ L too.
Superscripts are 2 ^and^ to none, but subscripts are CO ~2~ L too.
Note the spaces around the superscripts and subscripts.
To avoid the spaces, add square brackets around them:
2[^nd^] and CO[~2~]L
2[^and^] and CO[~2~]L
###. Insertions and deletions are indicated using -/+ symbols:
This is -deleted- text and this is +inserted+ text.
@ -375,7 +375,7 @@ table(tableclass).
|a|classy|table|
|a|classy|table|
###. Spanning rows and colums:
###. Spanning rows and columns:
A backslash \ is used for a column span:
|\2. spans two cols |

View File

@ -183,7 +183,7 @@ bind a send-prefix
### Theme
###########################################################################
# Statusbar Color Palatte
# Statusbar Color Palette
set-option -g status-justify left
set-option -g status-bg black
set-option -g status-fg white

View File

@ -486,7 +486,7 @@ int more = 57;
int* more_pointer = &more; // & = address-of
int indirection_demo = more_pointer*; // indirection
// Profiles: affect which Vala features are avaliable and which libraries the
// Profiles: affect which Vala features are available and which libraries the
// C-code will use.
// - gobject (default)
// posix

View File

@ -27,7 +27,7 @@ specific points in the file, and for fast editing.
:wq # Save file and quit vim
ZZ # Save file and quit vim
:q! # Quit vim without saving file
# ! *forces* :q to execute, hence quiting vim without saving
# ! *forces* :q to execute, hence quitting vim without saving
ZQ # Quit vim without saving file
:x # Save file(only when the file is modified) and quit vim

View File

@ -38,7 +38,7 @@ echo 'Hello' | echo 'world!'
" Putting a comment after a command usually works
pwd " Displays the current working directory
" Except for some commands it does not; use the command delemiter before the
" Except for some commands it does not; use the command delimiter before the
" comment (echo assumes that the quotation mark begins a string)
echo 'Hello world!' | " Displays a message
@ -98,7 +98,7 @@ echo v:false | " Evaluates to 0 or the string 'v:false'
" Boolean values can result from comparison of two objects.
echo x == y | " Equality by value
echo x != y | " Unequality
echo x != y | " Inequality
echo x > y | " Greater than
echo x >= y | " Greater than or equal
echo x < y | " Smaller than
@ -110,7 +110,7 @@ echo x isnot y | " Instance non-identity (lists and dictionaries)
" echo 'a' < 'b'. Case sensitivity depends on the setting of 'ignorecase'
"
" Explicit case-sensitivity is specified by appending '#' (match case) or '?'
" (ignore case) to the operator. Prefer explicity case sensitivity when writing
" (ignore case) to the operator. Prefer explicitly case sensitivity when writing
" portable scripts.
echo 'a' < 'B' | " True or false depending on 'ignorecase'
@ -315,7 +315,7 @@ let s:isNumber = {x -> type(x) == type(0)} | " Local: any name allowed
" Assign values of list to multiple variables (number of items must match)
let [x, y] = [1, 2]
" Assign the remainer to a rest variable (note the semicolon)
" Assign the remainder to a rest variable (note the semicolon)
let [mother, father; children] = ['Alice', 'Bob', 'Carol', 'Dennis', 'Emily']
@ -610,7 +610,7 @@ echo exists(':Make') | " Command
echo exists("#CursorHold") | " Auto-command defined for event
echo exists("#BufReadPre#*.gz") | " Event and pattern
echo exists("#filetypeindent") | " Auto-command group
echo exists("##ColorScheme") | " Auto-commnand supported for event
echo exists("##ColorScheme") | " Auto-command supported for event
" Various dynamic values (see |expand()|)
echo expand('%') | " Current file name

View File

@ -181,7 +181,7 @@ def _changeTaskStatus( \
_status: uint256, \
):
# backslashes (\) allow for multi-line code
# Natspec comments are particularly helpful for documentation and readibility
# Natspec comments are particularly helpful for documentation and readability
# Natspec can be included using familiar Pythonic docstring syntax
"""
@notice
@ -429,16 +429,16 @@ struct Struct:
owner: address
_balance: uint256 # balance is a reserved keyword, is a member for addresses
exampleStuct: Struct
exampleStruct: Struct
@public
def foo() -> uint256:
self.exampleStuct = Struct({owner: msg.sender, _balance: 5})
self.exampleStuct._balance = 10
self.exampleStuct._balance = 5 # set to new value
clear(self.exampleStuct._balance)
clear(self.exampleStuct)
return self.exampleStuct._balance
self.exampleStruct = Struct({owner: msg.sender, _balance: 5})
self.exampleStruct._balance = 10
self.exampleStruct._balance = 5 # set to new value
clear(self.exampleStruct._balance)
clear(self.exampleStruct)
return self.exampleStruct._balance
# Data locations: Memory vs. storage vs. calldata - all complex types (arrays,
@ -510,7 +510,7 @@ def increment(x: uint256, y: uint256) -> (uint256, uint256):
y += 1
return (x, y)
# Call previous functon
# Call previous function
@public
@constant
def willCall() -> (uint256, uint256):
@ -679,7 +679,7 @@ sha3(concat("ab", "cd")) # returns bytes32
# Step 1. Commit
# Place a commitment by sending output of `sha3()`
sha3("a secret"); # btyes32 commit
sha3("a secret"); # bytes32 commit
sha3(concat("secret", "other secret", "salt")); # commit multiple things
# The `sha3()` calculation should occur off-chain, only the bytes32
# output should be inputted into some `commit()` function

View File

@ -204,7 +204,7 @@ python_complex_number: !!python/complex 1+2j
# Strings and numbers aren't the only scalars that YAML can understand.
# ISO-formatted date and datetime literals are also parsed.
datetime_canonical: 2001-12-15T02:59:43.1Z
datetime_space_seperated_with_time_zone: 2001-12-14 21:59:43.10 -5
datetime_space_separated_with_time_zone: 2001-12-14 21:59:43.10 -5
date_implicit: 2002-12-14
date_explicit: !!timestamp 2002-12-14

View File

@ -69,7 +69,7 @@ pub fn main() void {
### Booleans, integers and float.
```zig
// Booleans.
// Keywords are prefered to operators for boolean operations.
// Keywords are preferred to operators for boolean operations.
print("{}\n{}\n{}\n", .{
true and false,
true or false,
@ -138,7 +138,7 @@ var some_integers: [10]i32 = undefined;
some_integers[0] = 30; // first element of the array is now 30
var x = some_integers[0]; // "x" now equals to 30, its type is infered.
var x = some_integers[0]; // "x" now equals to 30, its type is inferred.
var y = some_integers[1]; // Second element of the array isn't defined.
// "y" got a stack garbage value (no runtime error).
@ -707,8 +707,8 @@ However, here are some examples, to get an idea of what you can expect:
Use a fixed buffer to get its memory, don't ask memory to the kernel.
Very simple, limited and wasteful (can't deallocate), but very fast.
- ArenaAllocator.
Allow to free all allocted memory at once.
To use in combinaison with another allocator.
Allow to free all allocated memory at once.
To use in combinations with another allocator.
Very simple way of avoiding leaks.
A first example.
@ -825,7 +825,7 @@ fn arena_allocator_fn() !void {
// Combining the general purpose and arena allocators. Both are very useful,
// and their combinaison should be in everyone's favorite cookbook.
// and their combinations should be in everyone's favorite cookbook.
fn gpa_arena_allocator_fn() !void {
const config = .{.safety = true};
var gpa = std.heap.GeneralPurposeAllocator(config){};
@ -925,7 +925,7 @@ test "returns true" {
The compiler has special functions called "built-ins", starting with an "@".
There are more than a hundred built-ins, allowing very low-level stuff:
- compile-time errors, logging, verifications
- type coercion and convertion, even in an unsafe way
- type coercion and conversion, even in an unsafe way
- alignment management
- memory tricks (such as getting the byte offset of a field in a struct)
- calling functions at compile-time
@ -956,7 +956,7 @@ if (@enumToInt(Value.blah) == 2) { ... }
Unions cannot be reinterpreted (in an union with an integer and a float, one cannot take a value for another by accident).
Etc.
- Removing most of the C undefined behaviors (UBs), and when the compiler encounters one, it stops.
- Slice and Array structures are prefered to pointers.
- Slice and Array structures are preferred to pointers.
Types enforced by the compiler are less prone to errors than pointer manipulations.
- Numerical overflows produce an error, unless explicitly accepted using wrapping operators.
- Try and catch mechanism.
@ -964,7 +964,7 @@ if (@enumToInt(Value.blah) == 2) { ... }
- Unused variables are considered as errors by the compiler.
- Many pointer types exist in order to represent what is pointed.
Example: is this a single value or an array, is the length known, etc.
- Structures need a value for their attributes, and it still is possible to give an undefined value (stack garbage), but at least it is explicitely undefined.
- Structures need a value for their attributes, and it still is possible to give an undefined value (stack garbage), but at least it is explicitly undefined.
## Further Reading