forked from rubinius/rubinius
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathNews
97 lines (78 loc) · 4.91 KB
/
News
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
This file documents changes made in each version that may be of interest to
users. The description is high-level and focuses on visible behavior rather
than implementation details. The content here is not intended to provide
documentation for features. See http://rubini.us/documentation.
The Changelog file provides summaries of changes that affect behavior but not
typically changes that are related to specs, build system, or refactoring.
For source changes, see https://github.com/rubinius/rubinius/commits/master.
Version 2.3.0 (2014-10-31)
* Keyword arguments (both optional and required) are supported. Other syntax
changes in MRI 2.1, like Complex and Rational literal suffixes and symbol
list literals, are also supported.
* Rubinius will read -X configuration options from CWD/.rbxrc. The format of
the file is one -X configuration option per line. The available -X
configuration options are listed by the -Xhelp option.
* The basic infrastructure has been added for always-on metrics of Rubinius
subsystems. The metrics are 64bit monotonic counters. The data is accessible
with 'Rubinius::Metrics.data'. The object returned provides the following
methods:
* keys: return a list of symbol keys that name available metrics.
* values: return the values of the available metrics.
* []: return the value of the metric specified by the given key.
* to_hash: return a Hash instance of the available metrics.
The metrics can be emitted to StatsD at a regular interval. See the
following -X configuration options:
* system.metrics.interval
* system.metrics.target
* system.metrics.statsd.server
* system.metrics.statsd.prefix
The available metrics will be refined over time. Check the values returned
by the 'Rubinius::Metrics.data.keys' method to determine which metrics are
available.
* Rubinius provides an interface to the syslog facility. This is used
internally in Rubinius subsystems to standardize logging. Since the syslog
interface available through libc only allows syslog to be opened once in a
process, Rubinius provides the Rubinius::Logger class as a way for
applications to use the same handle to syslog but provide a specific prefix
for the application (or application components).
* Logger.system: return new logger using the "system" prefix.
* Logger.log_exception(message, exc): write a rendered exception with the
system logger prefix.
* Logger.new(name): return a new logger using the specified prefix.
* Logger#fatal(message): write message to both STDERR and the log with a
level of Fatal.
* Logger#error(message): write message to the log with level of Error.
* Logger#warn(message): write message to the log with level of Warn.
* Logger#info(message): write message to the log with level of Info.
* Logger#debug(message): write message to the log with level of Debug.
The default level that will be written to the log is Warn or higher. To
change the log level, use the system.log.level -X configuration option.
The system.log -X configuration variable controls which logger is used. The
available loggers are syslog, console, or path. The default logger is the
file /var/log/$PROGRAM_NAME.log, where $PROGRAM_NAME is replaced by the
value of Rubinius::PROGRAM_NAME. If this file is not writable,
$TMPDIR/$PROGRAM_NAME.log (where TMPDIR is an environment variable) or
/tmp/$PROGRAM_NAME.log will be used, if writable.
If using another application component that opens syslog, this will
interfere with Rubinius using syslog. In this scenario, consider using the
Rubinius::Logger class in your application.
* The infrastructure for Rubinius::Console has been added. Rubinius::Console
will eventually replace IRB, the Rubinius debugger and profiler, and all the
Rubinius::Agent features, including heap dump. Many of the Rubinius::Console
features have not yet been implemented.
The Rubinius::Console supports attaching to any running Rubinius instance as
long as read/write access is available to the file system path specified by
the system.fsapi.path -X configuration option. Accordingly, Console relies
on the OS process and file system permissions to provide security and access
control. With a utility like sshfs, Console can connect to a running
Rubinius instance over the network.
The goal of Console is to provide a single, comprehensive, integrated, and
powerful interface to the behavior of the Rubinius system and applications
running on it.
* Support for automatically building LLVM from source, or accessing a
pre-built binary of LLVM has been removed. Effort is being focused on
supporting LLVM packages provided by the system. This is a better use of
time and allows Rubinius to better integrate with existing systems. For
example, many Linux distributions strenuously discourage alternately
packaging system libraries to reduce security risks when defects in the
libraries are detected and fixed.