Skip to content

WIP: Switch to markdown and fix code blocks #49

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 14 commits into
base: master
Choose a base branch
from
Prev Previous commit
Next Next commit
fix headers
BuonOmo committed Apr 18, 2021
commit b1e59e2510213b71f123af629f5d3bccd43d1be7
8 changes: 4 additions & 4 deletions anyeval.md
Original file line number Diff line number Diff line change
@@ -4,10 +4,10 @@ title: "Chapter 17: Dynamic evaluation"
---

Chapter 17: Dynamic evaluation
------------------------------
==============================

Overview
========
--------

I have already finished to describe about the mechanism of the evaluator by the
previous chapter.
@@ -159,7 +159,7 @@ compiled when loading files.


`eval`
======
------


### `eval()`
@@ -541,7 +541,7 @@ when it reaches the link created at the evaluator (`vars`).


`instance_eval`
===============
---------------


### The Whole Picture
12 changes: 6 additions & 6 deletions class.md
Original file line number Diff line number Diff line change
@@ -6,13 +6,13 @@ title: Classes and modules
Translated by Vincent ISAMBART

Chapter 4: Classes and modules
------------------------------
==============================

In this chapter, we'll see the details of the data structures created
by classes and modules.

Classes and methods definition
==============================
------------------------------

First, I'd like to have a look at how Ruby classes are defined at the
C level. This chapter investigates almost only particular
@@ -281,7 +281,7 @@ provided with `ruby`, that is to say not from a built-in library.
```

Singleton classes
=================
-----------------

### `rb_define_singleton_method()`

@@ -759,7 +759,7 @@ What are singleton methods? They are methods defined in the singleton
class of an object.

Metaclasses
===========
-----------

### Inheritance of singleton methods

@@ -1173,7 +1173,7 @@ like figure 10.
</figure>

Class names
===========
-----------

In this section, we will analyse how's formed the reciprocal
conversion between class and class names, in other words
@@ -1445,7 +1445,7 @@ space. However, generally, there aren't many constants so even searching
all constants does not take too much time.

Include
=======
-------

We only talked about classes so let's finish this chapter with
something else and talk about module inclusion.
16 changes: 8 additions & 8 deletions contextual.md
Original file line number Diff line number Diff line change
@@ -10,10 +10,10 @@ more effort in this translation than I could ever wish for. Without them,
I would be still figuring out what `COND_LEXPOP()` actually does._

Chapter 11 Finite-state scanner
-------------------------------
===============================

Outline
=======
-------

In theory, the scanner and the parser are completely independent of each other
– the scanner is supposed to recognize tokens, while the parser is supposed to
@@ -275,7 +275,7 @@ only appears in a limited number of places, not warranting any special
attention.

Line-break handling
===================
-------------------

### The problem

@@ -423,7 +423,7 @@ Note that `class` becomes `tIDENTIFIER` despite being a reserved word.
This is discussed in the next section.

Reserved words and identical method names
=========================================
-----------------------------------------

### The problem

@@ -585,7 +585,7 @@ danger to parsing here, but if this is forgotten, the scanner will not pass
values to reserved words and value calculation will be disrupted.

Modifiers
=========
---------

### The problem

@@ -726,7 +726,7 @@ if rescue unless until while
```

The `do` conflict
=================
-----------------

### The problem

@@ -986,7 +986,7 @@ and `LEXPOP`. Basically, at this time it would be correct to say that
`COND_LEXPOP()` has no meaning.

`tLPAREN_ARG`(1)
================
----------------

### The problem

@@ -1343,7 +1343,7 @@ passing of arrays or passing of blocks. With this, the scope is now
sufficiently broad.

`tLPAREN_ARG`(2)
================
----------------

### The problem

6 changes: 3 additions & 3 deletions evaluator.md
Original file line number Diff line number Diff line change
@@ -7,7 +7,7 @@ Chapter 13: Structure of the evaluator
======================================

Outline
=======
-------


### Interface
@@ -461,7 +461,7 @@ This is also not important, so we won't see this.


`rb_eval()`
===========
-----------


### Outline
@@ -1275,7 +1275,7 @@ Fig.6: Transferring the return value


Exception
=========
---------


As the second example of the usage of "tag jump", we'll look at how exceptions
8 changes: 4 additions & 4 deletions fin.md
Original file line number Diff line number Diff line change
@@ -3,10 +3,10 @@ layout: default
---

Final Chapter: Ruby's future
----------------------------
============================

Issues to be addressed
======================
----------------------

`ruby` isn't 'completely finished' software. It's still being developed,
there are still a lot of issues. Firstly, we want to try removing
@@ -167,7 +167,7 @@ cannot continue to use eternally, isn't it?


`ruby` 2
========
--------

Subsequently, on the other hand, I'll introduce the trend of the original `ruby`,
how it is trying to counter these issues.
@@ -344,7 +344,7 @@ Therefore, it seems Rite will have its own `stdio`.


Ruby Hacking Guide
==================
------------------


So far, we've always acted as observers who look at `ruby` from outside.
18 changes: 9 additions & 9 deletions gc.md
Original file line number Diff line number Diff line change
@@ -5,10 +5,10 @@ title: Garbage Collection
Translated by Sebastian Krause & ocha-

Chapter 5: Garbage Collection
-----------------------------
=============================

A conception of an executing program
====================================
------------------------------------

It's all of a sudden but at the beginning of this chapter, we'll
learn about the memory space of an executing program. In this chapter
@@ -96,7 +96,7 @@ The `missing/alloca.c` of `ruby` is an example of an emulated `alloca()` .


Overview
========
--------

From here on we can at last talk about the main subject of this chapter:
garbage collection.
@@ -306,7 +306,7 @@ but because it sometimes invokes mark and sweep GC to check.


Object Management
=================
-----------------

Ruby's garbage collection is only concerned with ruby objects.
Moreover, it only concerned with the objects created and managed by `ruby`.
@@ -589,7 +589,7 @@ And take a struct from `freelist`, zerofill it by `MEMZERO()`, and return it.


Mark
====
----


As described, `ruby`'s GC is Mark & Sweep.
@@ -1416,7 +1416,7 @@ Until here, the mark phase has been finished.


Sweep
=====
-----


### The special treatment for `NODE`
@@ -1614,7 +1614,7 @@ several times in Part 2 and Part 3.


Discussions
===========
-----------


### To free spaces
@@ -1835,7 +1835,7 @@ but it seems it could not be applied to `ruby` because its algorithm has a hole.


When to invoke
==============
--------------


### Inside `gc.c`
@@ -1879,7 +1879,7 @@ that `NODE` cannot be garbage collected while compiling.


Object Creation
===============
---------------


We've finished about GC and come to be able to deal with the Ruby objects from
14 changes: 7 additions & 7 deletions intro.md
Original file line number Diff line number Diff line change
@@ -4,10 +4,10 @@ title: Introduction
---

Introduction
------------
============

Characteristics of Ruby
=======================
-----------------------

Some of the readers may have already been familiar with Ruby,
but (I hope) there are also many readers who have not. First let's go though a
@@ -356,7 +356,7 @@ It's, say, probably the slowest of all user-level thread implementations in this
The tendency of `ruby` implementation may be seen here the most clearly.

Technique to read source code
=============================
-----------------------------

Well. After an introduction of `ruby`, we are about to start reading source code. But wait.

@@ -643,7 +643,7 @@ features.
* function cross-reference

Build
=====
-----

### Target version

@@ -853,7 +853,7 @@ would be fairly long, so I'll explain it comprehensively in `doc/build.html` of
the attached CD-ROM.

Building Details
================
----------------

Until here, it has been the `README`-like description.
This time, let's look at exactly what is done by what we have been done.
@@ -1007,7 +1007,7 @@ libraries, but the extension libraries cannot be compiled without `ruby`.
In order to resolve this dilemma, it uses `miniruby`.

`CVS`
=====
-----

The `ruby` archive included in the attached CD-ROM is,
as the same as the official release package,
@@ -1131,7 +1131,7 @@ Regarding books which you can read in Japanese,
I recommend translated "Open Source Development with CVS" Karl Fogel, Moshe Bar.

The composition of `ruby`
=========================
-------------------------

### The physical structure

6 changes: 3 additions & 3 deletions iterator.md
Original file line number Diff line number Diff line change
@@ -4,10 +4,10 @@ title: "Chapter 16: Blocks"
---

Chapter 16: Blocks
------------------
==================

Iterator
========
--------


In this chapter, `BLOCK`, which is the last big name among the seven Ruby stacks,
@@ -890,7 +890,7 @@ Hence, we need to check the previous one.


`Proc`
======
------


To describe a `Proc` object from the viewpoint of implementing,
8 changes: 4 additions & 4 deletions load.md
Original file line number Diff line number Diff line change
@@ -8,7 +8,7 @@ Chapter 18: Loading
===================

Outline
=======
-------

### Interface

@@ -203,7 +203,7 @@ referred to as plug-ins, works. This is the most interesting part of this
chapter, so I'd like to use as many pages as possible to talk about it.

Searching the library
=====================
---------------------

### `rb_f_require()`

@@ -455,7 +455,7 @@ Figure 1: Serialisation of loads
</div>

Loading of Ruby programs
========================
------------------------

### `rb_load()`

@@ -698,7 +698,7 @@ dynamic links, and there are the other four `open`s.
Thus it seems the three of them are useless.

Loading of extension libraries
==============================
------------------------------

### `rb_f_require()`-`load_dyna`

Loading