Skip to content

Commit cbf224f

Browse files
author
Sangyong Sim
committed
[KO] Translate 2.6.0-rc{1,2} release
1 parent 833c254 commit cbf224f

File tree

2 files changed

+125
-127
lines changed

2 files changed

+125
-127
lines changed

ko/news/_posts/2018-12-06-ruby-2-6-0-rc1-released.md

Lines changed: 61 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -1,115 +1,114 @@
11
---
22
layout: news_post
3-
title: "Ruby 2.6.0-rc1 Released"
3+
title: "루비 2.6.0-rc1 릴리스"
44
author: "naruse"
5-
translator:
5+
translator: "shia"
66
date: 2018-12-06 00:00:00 +0000
7-
lang: en
7+
lang: ko
88
---
99

10-
We are pleased to announce the release of Ruby 2.6.0-rc1.
10+
루비 2.6.0-rc1의 릴리스를 알리게 되어 기쁩니다.
1111

12-
Ruby 2.6.0-rc1 is the first release candidate of Ruby 2.6.0.
13-
It introduces some new features and performance improvements, for example:
12+
루비 2.6.0-rc1은 루비 2.6.0의 첫 번째 릴리스 후보입니다.
13+
이는 다음과 같은 여러 새 기능과 기능 향상을 포함합니다.
1414

1515
## JIT
1616

17-
Ruby 2.6 introduces an initial implementation of JIT (Just-in-time) compiler.
17+
루비 2.6은 JIT(Just-in-time) 컴파일러의 첫 구현체를 포함합니다.
1818

19-
JIT compiler aims to improve performance of any Ruby program execution.
20-
Unlike ordinary JIT compilers for other languages, Ruby's JIT compiler does JIT compilation in a unique way, which prints C code to a disk and spawns common C compiler process to generate native code.
21-
See also: [MJIT organization by Vladimir Makarov](https://github.com/vnmakarov/ruby/tree/rtl_mjit_branch#mjit-organization).
19+
JIT 컴파일러는 루비 프로그램의 실행 성능을 향상시키는 것이 목적입니다.
20+
다른 언어의 일반적인 JIT 컴파일러와는 다르게, 루비의 JIT 컴파일러는 C 코드를 디스크에 출력한 뒤, 일반적인 C 컴파일러 프로세스를 사용해 네이티브 코드를 생성하도록 합니다.
21+
다음을 참고하세요. [Vladimir Makarov가 작성한 MJIT 구조](https://github.com/vnmakarov/ruby/tree/rtl_mjit_branch#mjit-organization).
2222

23-
How to use: Just specify `--jit` in command line or `$RUBYOPT` environment variable.
24-
Specifying `--jit-verbose=1` allows to print basic information of ongoing JIT compilation. See `ruby --help` for other options.
23+
JIT 컴파일을 사용하려면 `--jit` 옵션을 커맨드라인이나 `$RUBYOPT` 환경 변수에 지정합니다.
24+
`--jit-verbose=1`을 지정하면 실행 중인 JIT 컴파일의 기본적인 정보를 출력합니다. 다른 옵션에 대해서는 `ruby --help`를 확인하세요.
2525

26-
The main purpose of this JIT release is to provide a chance to check if it works for your platform and to find out security risks before the 2.6 release.
27-
JIT compiler is supported when Ruby is built by GCC, Clang, or Microsoft VC++, which needs to be available on runtime. Otherwise you can't use it for now.
26+
이번 JIT 릴리스의 주 목적은 2.6 릴리스 전에 각 플랫폼에서 잘 동작하는지, 보안상의 문제가 발생하는지 미리 확인하는 것입니다.
27+
현재 JIT 컴파일러는 루비가 gcc나 clang, Microsoft VC++로 빌드되었으며, 해당 컴파일러가 런타임에서 사용 가능한 경우에만 이용할 수 있습니다. 그 이외에는 아직 이용할 수 없습니다.
2828

29-
As of Ruby 2.6.0-rc1, we achieved 1.7x faster performance than Ruby 2.5 on CPU-intensive non-trivial benchmark workload called Optcarrot <https://gist.github.com/k0kubun/d7f54d96f8e501bbbc78b927640f4208>. We're going to improve the performance on memory-intensive workload like Rails application as well.
29+
2.6.0-rc1에서는 Optcarrot이라는 CPU 성능을 요구하는 벤치마크에서 1.7배의 성능 향상을 이루었습니다(다음을 참조: https://gist.github.com/k0kubun/d7f54d96f8e501bbbc78b927640f4208). Rails 애플리케이션 같은 메모리를 요구하는 작업에서도 성능을 향상시킬 것입니다.
3030

31-
Stay tuned for the new age of Ruby's performance.
31+
새로운 루비의 성능을 기대해주세요.
3232

3333
## RubyVM::AbstractSyntaxTree [Experimental]
3434

35-
Ruby 2.6 introduces `RubyVM::AbstractSyntaxTree` module.
35+
루비 2.6에는 `RubyVM::AbstractSyntaxTree` 모듈이 도입되었습니다.
3636

37-
This module has `parse` method which parses a given ruby code of string and returns AST (Abstract Syntax Tree) nodes, and `parse_file` method which parses a given ruby code file and returns AST nodes.
38-
`RubyVM::AbstractSyntaxTree::Node` class is also introduced. You can get location information and children nodes from `Node` objects. This feature is experimental. Compatibility of the structure of AST nodes are not guaranteed.
37+
이 모듈에은 문자열을 파싱하여 AST(추상구문트리)의 노드를 돌려주는 `parse` 메서드, 파일을 파싱하여 AST의 노드를 돌려주는 `parse_file` 메서드가 들어있습니다.
38+
`RubyVM::AbstractSyntaxTree::Node`도 도입되었습니다. 이 클래스의 인스턴스로부터 위치정보나 자식 노드를 얻을 수 있습니다. 이 기능은 실험적으로 포함되었으며, AST 노드의 구조는 호환성을 보장하지 않습니다.
3939

40-
## New Features
40+
## 새로운 기능
4141

42-
* Add a new alias `then` to `Kernel#yield_self`. [[Feature #14594]](https://bugs.ruby-lang.org/issues/14594)
42+
* `Kernel#yield_self`의 별칭으로 `then`이 추가되었습니다. [[Feature #14594]](https://bugs.ruby-lang.org/issues/14594)
4343

44-
* `else` without `rescue` now causes a syntax error. [EXPERIMENTAL]
44+
* `rescue`가 없는 `else`가 문법 에러가 됩니다. [EXPERIMENTAL]
4545

46-
* constant names may start with a non-ASCII capital letter. [[Feature #13770]](https://bugs.ruby-lang.org/issues/13770)
46+
* ASCII 이외의 대문자로 시작하는 상수를 정의할 수 있게 됩니다. [[Feature #13770]](https://bugs.ruby-lang.org/issues/13770)
4747

48-
* endless range [[Feature #12912]](https://bugs.ruby-lang.org/issues/12912)
48+
* 종료 지정이 없는 범위 연산자. [[Feature #12912]](https://bugs.ruby-lang.org/issues/12912)
4949

50-
An endless range, `(1..)`, is introduced. It works as it has no end. This shows typical use cases:
50+
종료 지정이 없는 범위 연산자, `(1..)`가 추가됩니다. 이는 끝이 없는 것처럼 취급됩니다. 다음은 전형적인 사용 예시입니다.
5151

52-
ary[1..] # identical to ary[1..-1] without magical -1
53-
(1..).each {|index| ... } # inifinite loop from index 1
52+
ary[1..] # ary[1..-1]와 동치
53+
(1..).each {|index| ... } # 1로 시작하는 무한 루프
5454
ary.zip(1..) {|elem, index| ... } # ary.each.with_index(1) { ... }
5555

56-
* Add `Binding#source_location`. [[Feature #14230]](https://bugs.ruby-lang.org/issues/14230)
56+
* `Binding#source_location`을 추가했습니다. [[Feature #14230]](https://bugs.ruby-lang.org/issues/14230)
5757

58-
This method returns the source location of binding, a 2-element array of `__FILE__` and `__LINE__`. Traditionally, the same information could be retrieved by `eval("[__FILE__, __LINE__]", binding)`, but we are planning to change this behavior so that `Kernel#eval` ignores binding's source location [[Bug #4352]](https://bugs.ruby-lang.org/issues/4352). So, users should use this newly-introduced method instead of `Kernel#eval`.
58+
이 메서드는 `binding`의 소스 코드 상의 위치를 `__FILE__``__LINE__`을 가지는 배열로 돌려줍니다. `Kernel#eval``binding`의 소스 코드의 위치를 무시하도록 변경할 예정입니다. [[Bug #4352]](https://bugs.ruby-lang.org/issues/4352) 그러므로 지금까지 사용하던 `eval("[__FILE__, __LINE__]", binding)`로 같은 정보를 획득할 수 없게 됩니다, 앞으로는 `Kernel#eval`보다는 새로운 `Binding#source_location` 메서드를 사용하게 될 것입니다.
5959

60-
* Add `:exception` option to let `Kernel#system` raise error instead of returning `false`. [[Feature #14386]](https://bugs.ruby-lang.org/issues/14386)
60+
* `Kernal#system`이 실패했을 경우 `false`를 돌려주는 대신, 에러를 던지도록 하는 `:exception` 옵션을 추가했습니다. [[Feature #14386]](https://bugs.ruby-lang.org/issues/14386)
6161

62-
* add the oneshot mode [[Feature#15022]](https://bugs.ruby-lang.org/issues/15022)
63-
* This mode checks "whether each line was executed at least once or not", instead of "how many times each line was executed". A hook for each line is fired at most once, and after it is fired the hook flag is removed, i.e., it runs with zero overhead.
64-
* Add `:oneshot_lines` keyword argument to Coverage.start.
65-
* Add `:stop` and `:clear` keyword arguments to Coverage.result. If `clear` is true, it clears the counters to zero. If `stop` is true, it disables coverage measurement.
66-
* Coverage.line_stub, which is a simple helper function that creates the "stub" of line coverage from a given source code.
62+
* `Coverage`의 oneshot_lines 모드를 추가했습니다. [[Feature#15022]](https://bugs.ruby-lang.org/issues/15022)
63+
* 이 모드는 '각 줄이 몇 번 실행되었는지' 대신 '각 줄이 한 번 이상 실행되었는지'를 확인합니다. 각 줄의 훅은 최대 1회만 실행되며, 실행된 후에는 플래그를 제거하기 때문에 오버헤드 없이 실행됩니다.
64+
* `Coverage.start` `:oneshot_lines` 키워드 인수가 추가됩니다.
65+
* `Coverage.result` `:stop``:clear` 키워드 인수가 추가됩니다. 만약 `clear`가 참이라면, 이는 카운터를 0으로 초기화합니다. 만약 `stop`이 참이라면 커버리지 측정을 비활성화합니다.
66+
* 주어진 소스 코드로부터 'stub'을 생성하는 간단한 헬퍼 함수인 `Coverage.line_stub`을 추가합니다.
6767

6868
* `FileUtils#cp_lr`. [[Feature #4189]](https://bugs.ruby-lang.org/issues/4189)
6969

70-
## Performance improvements
70+
## 성능 향상
7171

72-
* Speedup `Proc#call` because we don't need to care about `$SAFE` any more.
72+
* `Proc#call`이 더 이상 `$SAFE`를 고려하지 않아도 되어 속도가 빨라졌습니다.
7373
[[Feature #14318]](https://bugs.ruby-lang.org/issues/14318)
7474

75-
With `lc_fizzbuzz` benchmark which uses `Proc#call` so many times we can measure
76-
x1.4 improvements [[Bug #10212]](https://bugs.ruby-lang.org/issues/10212).
75+
`Proc#call`을 대량으로 호출하는 `lc_fizzbuzz` 벤치마크가 1.4배 빨라졌습니다.
76+
[[Bug #10212]](https://bugs.ruby-lang.org/issues/10212)
7777

78-
* Speedup `block.call` where `block` is passed block parameter. [[Feature #14330]](https://bugs.ruby-lang.org/issues/14330)
78+
* `block`이 블록 파라미터인 경우의 `block.call`이 빨라졌습니다. [[Feature #14330]](https://bugs.ruby-lang.org/issues/14330)
7979

80-
Ruby 2.5 improves block passing performance. [[Feature #14045]](https://bugs.ruby-lang.org/issues/14045)
81-
Additionally, Ruby 2.6 improves the performance of passed block calling.
82-
With micro-benchmark we can observe x2.6 improvement.
80+
루비 2.5에서는 블록 넘기기의 성능이 향상되었습니다만 [[Feature #14045]](https://bugs.ruby-lang.org/issues/14045),
81+
추가로 2.6에서는 넘겨진 블록의 호출이 개선되었습니다.
82+
간단한 벤치마크에서 2.6배의 성능 향상을 확인했습니다.
8383

84-
* Transient Heap (theap) is introduced. [[Bug #14858]](https://bugs.ruby-lang.org/issues/14858) [[Feature #14989]](https://bugs.ruby-lang.org/issues/14989)
85-
theap is managed heap for short-living memory objects which are pointed by
86-
specific classes (Array, Hash, Object, and Struct). For example, making small
87-
and short-living Hash object is x2 faster. With rdoc benchmark, we observed
88-
6-7% performance improvement.
84+
* Transient Heap(theap)이 도입되었습니다. [[Bug #14858]](https://bugs.ruby-lang.org/issues/14858) [[Feature #14989]](https://bugs.ruby-lang.org/issues/14989)
85+
theap은 특정 클래스(Array, Hash, Object, Struct)가 가리키는 짧은 생애를
86+
가지는 메모리 객체들을 관리합니다. 예를 들어 작고 짧게 생존하는 Hash 객체는
87+
2배 빨라집니다. rdoc 벤치마크에서 6-7%의 성능 향상을 확인했습니다.
8988

90-
## Other notable changes since 2.5
89+
## 2.5 이후 주목할 만한 변경
9190

92-
* `$SAFE` is a process global state and we can set `0` again. [[Feature #14250]](https://bugs.ruby-lang.org/issues/14250)
91+
* `$SAFE`가 프로세스 전역 변수로 취급되며, `0` 이외의 값을 설정한 후에 `0`으로 되돌리는 것이 가능해집니다. [[Feature #14250]](https://bugs.ruby-lang.org/issues/14250)
9392

94-
* Passing `safe_level` to `ERB.new` is deprecated. `trim_mode` and `eoutvar` arguments are changed to keyword arguments. [[Feature #14256]](https://bugs.ruby-lang.org/issues/14256)
93+
* `ERB.new` `safe_level`을 넘기는 기능이 제거될 예정입니다. 또한 `trim_mode``eoutvar`는 키워드 변수로 변경됩니다. [[Feature #14256]](https://bugs.ruby-lang.org/issues/14256)
9594

96-
* Supported Unicode version is updated to 11. It is planed to update 12 and 12.1 in future TEENY releases of Ruby 2.6.
95+
* 유니코드 지원 버전이 11.0.0으로 갱신되었습니다. 이는 루비 2.6의 TEENY 릴리스에서 12와 12.1로 갱신될 예정입니다.
9796

98-
* Merge RubyGems 3.0.0.beta3. `--ri` and `--rdoc` options was removed. Please use `--document` and `--no-document` options instead of them.
97+
* RubyGems 3.0.0.beta3를 병합했습니다. `--ri``--rdoc` 옵션이 제거되었습니다. 대신에 `--document``--no-document`를 사용해주세요.
9998

100-
* Merge [Bundler](https://github.com/bundler/bundler) as Default gems.
99+
* [Bundler](https://github.com/bundler/bundler)를 기본 젬으로 병합했습니다.
101100

102-
See [NEWS](https://github.com/ruby/ruby/blob/v2_6_0_rc1/NEWS)
103-
or [commit logs](https://github.com/ruby/ruby/compare/v2_5_0...v2_6_0_rc1)
104-
for details.
101+
[NEWS](https://github.com/ruby/ruby/blob/v2_6_0_rc1/NEWS)
102+
[커밋 로그](https://github.com/ruby/ruby/compare/v2_5_0...v2_6_0_rc1)에서
103+
더 자세한 설명을 확인할 수 있습니다.
105104

106-
With those changes,
107-
[6376 files changed, 227364 insertions(+), 51599 deletions(-)](https://github.com/ruby/ruby/compare/v2_5_0...v2_6_0_rc1)
108-
since Ruby 2.5.0!
105+
이러한 변경 사항에 따라, 루비 2.5.0 이후로
106+
[파일 6376개 수정, 227364줄 추가(+), 51599줄 삭제(-)](https://github.com/ruby/ruby/compare/v2_5_0...v2_6_0_rc1)
107+
이루어졌습니다!
109108

110-
Enjoy programming with Ruby 2.6.0-rc1!
109+
루비 2.5.0-rc1을 즐겨보세요!
111110

112-
## Download
111+
## 다운로드
113112

114113
* <https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.0-rc1.tar.gz>
115114

0 commit comments

Comments
 (0)