<commit_before>+++
title = "This Week in Redox 29"
author = "goyox86"
date = "2017-09-25 22:55:55 +0100"
+++

This is the 29th post of a series of blog posts tracking the development and progress of Redox, the Rust operating system. If you want to know more about Redox in general, visit our [Github page](https://github.com/redox-os/redox).

*(edited by goyox86)*

# PSA

If you have any questions, ideas, or are curious about Redox, we recommend joining `#redox` on `irc.mozilla.org`, [our Discourse forum](https://discourse.redox-os.org/) or you can get an invite to our chat by sending an email request to `<EMAIL>`.

# What's new in Redox?

## TL;DR

Hello again! Did you missed us?

We hope you did!

Anyways, I have good news for you: it was only me! Because the rest of the team was super busy making Redox even awesomer ;)

There is a lot of stuff packed on this one. So... Buckle up!

First things first: During my absence there were 3 new releases [0.3.1](https://github.com/redox-os/redox/releases/tag/0.3.1), [0.3.2](https://github.com/redox-os/redox/releases/tag/0.3.2) and [0.3.3](https://github.com/redox-os/redox/releases/tag/0.3.3) focused on better POSIX compatibility, improved ACPI support and lower memory usage respectively (Along many other things I'm gonna cover next).

We also have a new [login window and a file dialog](https://imgur.com/a/4E7sz) thanks to [@jackpot51](https://github.com/jackpot51). 

Other important news is that we are now maintaining the **RustType** crate, which can be found [here](https://github.com/redox-os/rusttype), under the redox-os Github organization.

Let's start the more detailed view with the **kernel** where we have the [huge ACPI revamp](https://github.com/redox-os/kernel/pull/48) done by [@CWood1](https://github.com/CWood1) which implements (among other things) a full fledged AML parser. Mr [@jackpot51](https://github.com/jackpot51) was busy improving the debugging code, implementing events on pipe (which in turn adds up to `mio`s crate support AKA: [this](https://gist.github.com/goyox86/5902f42988b91741bc12a42a6b5c78ed) small sample now works in Redox). He also fixed the mapping of TLS (which now page aligned) as well as improved error information and cleaned the interrupt macros.

On the **Ion** front [@glowing-chemist](https://github.com/glowing-chemist) added support for polish notation, also, and thanks to [@mmstick](https://github.com/mmstick) Ion now supports 8, 16, 24 and 256 colours. He also added support for the `$SWD` and `$MWD` environment variables. A new `exists` builtin was added by [@BafDyce](https://github.com/BafDyce) and [@nivkner](https://github.com/nivkner) made some refactoring on the `match` statements. But changes don't stop there, read the details and you will see that there is a lot of other interesting stuff ni there!

The **drivers** saw a bunch of updates and fixes mostly by [@jackpot51](https://github.com/jackpot51) who made some fixes to `pcid`, a change on `Intel8254x` network driver in order use a spin for reset instead of yielding along with the addition of a method for resizing display in `bgad`. He also disabled the `XHCI` driver due to lockups and removed some unused `extern crate`s statements.

The **RedoxFS** got some attention from [@ids1024](https://github.com/ids1024) who made it not an error to open a directory without `O_DIRECTORY` or `O_STAT`, and `futimens` not to require `O_RWONLY/O_RDWR`. Also, we are temporarily using a `nightly` friendly version of the `spin` crate.

**TFS** land was visited by [@ticki](https://github.com/ticki) and among the highlights are: the introduction of a new `control-flow` crate to control control-flow outside closures, a fix for several compile errors in `atomic-hashmap`, the addition of `conc::Guard::{try,maybe}_map` followed by the switch to `parking_lot` in `conc`.

The **cookbook** (our collection of packages) was also very active during this period! [@7h0ma5](https://github.com/7h0ma5) added recipes for `ncurses` and `readline` while [@ids1024](https://github.com/ids1024) added one for `perl` and [@xTibor](https://github.com/xTibor) added `ffmpeg`. `python` was updated to a new version and a new `--debug` argument was added to `cook.sh` (the package builder). Last but no least! [@AgostonSzepessy](https://github.com/AgostonSzepessy) added support for dependency info to packages. Nice! 

Also, there are big news in **coreutils**: We are now using [coreutils](https://github.com/uutils/coreutils) versions of the utilities where it makes sense. For example: [@ids1024](https://github.com/ids1024) removed our versions of `chmod`, `env`, and `ls` opening room for the better versions on `uutils` (our fork of `coreutils`). While all of that was being done, [@dabbydubby](https://github.com/dabbydubby) was improving `pwd`'s description, reformatting, restructuring and fixing few bugs in `mv` and afterwhile porting those changes over to `cp`.

Finally on the GUI side of things **Orbital** experienced bunch of unused code remotion and the start of the work on z-buffering (by [@jackpot51](https://github.com/jackpot51)) while **Orbtk** saw the birth of a new file dialog, got the ability to convert an `orbclient` window into an `orbtk` one, the addition of borders around menu entries and some fixes on textbox's scrolling.

*Bonus*: Few days ago we saw this message from [@jackpot51](https://github.com/jackpot51) on the Redox chat: "Gentlemen, I am going to port libservo". Yes! some `libservo` work is on the way <3

*Bonus 2*: I also woke up one day and saw this [MESA fork](https://github.com/redox-os/mesa). 

Exciting times! Aren't they? Stay tunned for more!

## Kernel

The Redox microkernel.

- [@ids1024](https://github.com/ids1024) Added support for arguments in `#!`. Details [here](https://github.com/redox-os/kernel/pull/47).
- [@jackpot51](https://github.com/jackpot51) Fixed the PIT. Details [here](https://github.com/redox-os/kernel/commit/9fcaf30513d8f58cc405f14b2263f499de8fa185).
- [@jackpot51](https://github.com/jackpot51) Made `syscall` a submodule. Details [here](https://github.com/redox-os/kernel/commit/d487e1d23f39a26ea927b39a80f20e064bcdafaf).
- [@CWood1](https://github.com/CWood1) Fully implemented AML parser, and did many improvements to the ACPI infrastructure. Details [here](https://github.com/redox-os/kernel/pull/48).
- [@jackpot51](https://github.com/jackpot51) Removed warnings, improved error information and cleaned up interrupt macros in ACPI. Details [here](https://github.com/redox-os/kernel/commit/a5f3e5057b72c1f920839a8ab46f3ee77d6a17ae).
- [@jackpot51](https://github.com/jackpot51) Fixed the mapping of TLS. It is now be page aligned. Details [here](https://github.com/redox-os/kernel/commit/917d30c193edd6a7c4bdbf89f78c59299f4b4f4d).
- [@jackpot51](https://github.com/jackpot51) Implemented events on pipe, added syscall name debugging and update debugging code. Details [here](https://github.com/redox-os/kernel/commit/6e8de21b7c3354e9a1eac3c0570d9c5065281dec).
- [@ids1024](https://github.com/ids1024) Commented out system call debug printing code. Details [here](https://github.com/redox-os/kernel/pull/51).
- [@jackpot51](https://github.com/jackpot51) Updated debugging code. Details [here](https://github.com/redox-os/kernel/commit/5839641b414452fe789d85a2ec2670ca6c050dd6).
- [@jackpot51](https://github.com/jackpot51) Changed `unreachable` to `enosys`. Details [here](https://github.com/redox-os/kernel/commit/bec961094700d6886bd7a2ceb26c9eadb3586073).
- [@ids1024](https://github.com/ids1024) Temporary overrode `spin-rs`. Details [here](https://github.com/redox-os/kernel/pull/52).
- [@jackpot51](https://github.com/jackpot51) Updated dependencies. Details [here](https://github.com/redox-os/kernel/commit/1f81866afafd5a3830c078c0ad8921b5316c0248).
- [@jackpot51](https://github.com/jackpot51) Implemented a more efficient live filesystem method, reduce kernel heap to 64 MB and fixed an issue in `build.rs`. Details [here](https://github.com/redox-os/kernel/commit/d6b9768dc3e9cd967df0acf3eafb10d02c9f0ba6).
- [@L3nn0x](https://github.com/L3nn0x) Correct small bug in memcpy 32bits implementation. Details [here](https://github.com/redox-os/kernel/pull/54).
<commit_msg>Update this-week-in-redox-29.md<commit_after>+++
title = "This Week in Redox 29"
author = "goyox86"
date = "2017-09-25 22:55:55 +0100"
+++

This is the 29th post of a series of blog posts tracking the development and progress of Redox, the Rust operating system. If you want to know more about Redox in general, visit our [Github page](https://github.com/redox-os/redox).

*(edited by goyox86)*

# PSA

If you have any questions, ideas, or are curious about Redox, we recommend joining `#redox` on `irc.mozilla.org`, [our Discourse forum](https://discourse.redox-os.org/) or you can get an invite to our chat by sending an email request to `<EMAIL>`.

# What's new in Redox?

## TL;DR

Hello again! Did you missed us?

We hope you did!

Anyways, I have good news for you: it was only me! Because the rest of the team was super busy making Redox even awesomer ;)

There is a lot of stuff packed on this one. So... Buckle up!

First things first: During my absence there were 3 new releases [0.3.1](https://github.com/redox-os/redox/releases/tag/0.3.1), [0.3.2](https://github.com/redox-os/redox/releases/tag/0.3.2) and [0.3.3](https://github.com/redox-os/redox/releases/tag/0.3.3) focused on better POSIX compatibility, improved ACPI support and lower memory usage respectively (Along many other things I'm gonna cover next).

We also have a new [login window and a file dialog](https://imgur.com/a/4E7sz) thanks to [@jackpot51](https://github.com/jackpot51). 

Other important news is that we are now maintaining the **RustType** crate, which can be found [here](https://github.com/redox-os/rusttype), under the redox-os Github organization.

Let's start the more detailed view with the **kernel** where we have the [huge ACPI revamp](https://github.com/redox-os/kernel/pull/48) done by [@CWood1](https://github.com/CWood1) which implements (among other things) a full fledged AML parser. Mr [@jackpot51](https://github.com/jackpot51) was busy improving the debugging code, implementing events on pipe (which in turn adds up to `mio`s crate support AKA: [this](https://gist.github.com/goyox86/5902f42988b91741bc12a42a6b5c78ed) small sample now works in Redox). He also fixed the mapping of TLS (which now page aligned) as well as improved error information and cleaned the interrupt macros.

On the **Ion** front [@glowing-chemist](https://github.com/glowing-chemist) added support for polish notation, also, and thanks to [@mmstick](https://github.com/mmstick) Ion now supports 8 color, 16 color, 256 color, and 24-bit colors. He also added support for the `$SWD` and `$MWD` environment variables. A new `exists` builtin was added by [@BafDyce](https://github.com/BafDyce) and [@nivkner](https://github.com/nivkner) made some refactoring on the `match` statements. But changes don't stop there, read the details and you will see that there is a lot of other interesting stuff ni there!

The **drivers** saw a bunch of updates and fixes mostly by [@jackpot51](https://github.com/jackpot51) who made some fixes to `pcid`, a change on `Intel8254x` network driver in order use a spin for reset instead of yielding along with the addition of a method for resizing display in `bgad`. He also disabled the `XHCI` driver due to lockups and removed some unused `extern crate`s statements.

The **RedoxFS** got some attention from [@ids1024](https://github.com/ids1024) who made it not an error to open a directory without `O_DIRECTORY` or `O_STAT`, and `futimens` not to require `O_RWONLY/O_RDWR`. Also, we are temporarily using a `nightly` friendly version of the `spin` crate.

**TFS** land was visited by [@ticki](https://github.com/ticki) and among the highlights are: the introduction of a new `control-flow` crate to control control-flow outside closures, a fix for several compile errors in `atomic-hashmap`, the addition of `conc::Guard::{try,maybe}_map` followed by the switch to `parking_lot` in `conc`.

The **cookbook** (our collection of packages) was also very active during this period! [@7h0ma5](https://github.com/7h0ma5) added recipes for `ncurses` and `readline` while [@ids1024](https://github.com/ids1024) added one for `perl` and [@xTibor](https://github.com/xTibor) added `ffmpeg`. `python` was updated to a new version and a new `--debug` argument was added to `cook.sh` (the package builder). Last but no least! [@AgostonSzepessy](https://github.com/AgostonSzepessy) added support for dependency info to packages. Nice! 

Also, there are big news in **coreutils**: We are now using [coreutils](https://github.com/uutils/coreutils) versions of the utilities where it makes sense. For example: [@ids1024](https://github.com/ids1024) removed our versions of `chmod`, `env`, and `ls` opening room for the better versions on `uutils` (our fork of `coreutils`). While all of that was being done, [@dabbydubby](https://github.com/dabbydubby) was improving `pwd`'s description, reformatting, restructuring and fixing few bugs in `mv` and afterwhile porting those changes over to `cp`.

Finally on the GUI side of things **Orbital** experienced bunch of unused code removal and improvement of z-buffering (by [@jackpot51](https://github.com/jackpot51)) while **Orbtk** saw the birth of a new file dialog, got the ability to convert an `orbclient` window into an `orbtk` one, the addition of borders around menu entries and some fixes on textbox's scrolling.

*Bonus*: Few days ago we saw this message from [@jackpot51](https://github.com/jackpot51) on the Redox chat: "Gentlemen, I am going to port libservo". Yes! some `libservo` work is on the way <3

*Bonus 2*: I also woke up one day and saw this [MESA fork](https://github.com/redox-os/mesa). 

Exciting times! Aren't they? Stay tunned for more!

## Kernel

The Redox microkernel.

- [@ids1024](https://github.com/ids1024) Added support for arguments in `#!`. Details [here](https://github.com/redox-os/kernel/pull/47).
- [@jackpot51](https://github.com/jackpot51) Fixed the PIT. Details [here](https://github.com/redox-os/kernel/commit/9fcaf30513d8f58cc405f14b2263f499de8fa185).
- [@jackpot51](https://github.com/jackpot51) Made `syscall` a submodule. Details [here](https://github.com/redox-os/kernel/commit/d487e1d23f39a26ea927b39a80f20e064bcdafaf).
- [@CWood1](https://github.com/CWood1) Fully implemented AML parser, and did many improvements to the ACPI infrastructure. Details [here](https://github.com/redox-os/kernel/pull/48).
- [@jackpot51](https://github.com/jackpot51) Removed warnings, improved error information and cleaned up interrupt macros in ACPI. Details [here](https://github.com/redox-os/kernel/commit/a5f3e5057b72c1f920839a8ab46f3ee77d6a17ae).
- [@jackpot51](https://github.com/jackpot51) Fixed the mapping of TLS. It is now be page aligned. Details [here](https://github.com/redox-os/kernel/commit/917d30c193edd6a7c4bdbf89f78c59299f4b4f4d).
- [@jackpot51](https://github.com/jackpot51) Implemented events on pipe, added syscall name debugging and update debugging code. Details [here](https://github.com/redox-os/kernel/commit/6e8de21b7c3354e9a1eac3c0570d9c5065281dec).
- [@ids1024](https://github.com/ids1024) Commented out system call debug printing code. Details [here](https://github.com/redox-os/kernel/pull/51).
- [@jackpot51](https://github.com/jackpot51) Updated debugging code. Details [here](https://github.com/redox-os/kernel/commit/5839641b414452fe789d85a2ec2670ca6c050dd6).
- [@jackpot51](https://github.com/jackpot51) Changed `unreachable` to `enosys`. Details [here](https://github.com/redox-os/kernel/commit/bec961094700d6886bd7a2ceb26c9eadb3586073).
- [@ids1024](https://github.com/ids1024) Temporary overrode `spin-rs`. Details [here](https://github.com/redox-os/kernel/pull/52).
- [@jackpot51](https://github.com/jackpot51) Updated dependencies. Details [here](https://github.com/redox-os/kernel/commit/1f81866afafd5a3830c078c0ad8921b5316c0248).
- [@jackpot51](https://github.com/jackpot51) Implemented a more efficient live filesystem method, reduce kernel heap to 64 MB and fixed an issue in `build.rs`. Details [here](https://github.com/redox-os/kernel/commit/d6b9768dc3e9cd967df0acf3eafb10d02c9f0ba6).
- [@L3nn0x](https://github.com/L3nn0x) Correct small bug in memcpy 32bits implementation. Details [here](https://github.com/redox-os/kernel/pull/54).

{'fraction_non_alphanumeric': 0.12252197635647166, 'fraction_numerical': 0.0529857532585632, 'mean_word_length': 4.970322113644589, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 5, 'https://': 114, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3936771', 'n_tokens_mistral': 5851, 'n_tokens_neox': 5229, 'n_words': 1814}