-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathCHANGELOG.txt
253 lines (167 loc) · 10.6 KB
/
CHANGELOG.txt
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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
JRuby for Max changelog
******************************************************************************
* Version 1.0.2 *
******************************************************************************
* Upgrade JRuby to version 1.7.4
* Added Ruby Gem manager patcher, for installing, updating, and deleting gems.
******************************************************************************
* Version 1.0.1 *
******************************************************************************
* Upgrade JRuby to version 1.6.7.2
* Fixed a bug in JRubyForMax::LiveAPI::LiveObject that preventing receiving
data from the Max patcher.
******************************************************************************
* Version 1.0 (since this project was forked from "ajm objects") *
******************************************************************************
* Ruby 1.9 is now the default interpreter mode (use @ruby_version 1.8 to change back to 1.8 if needed)
* Upgraded JRuby to version 1.6.4
* .rb extension is now optional for @file
* A jruby.error_window patch has been provided to make it easy to display errors.
This is especially useful in Max for Live where the Max window is often not visible.
* Ruby evaluation is automatically deferred until the object has initialized, so you don't have
to put a [deferlow] object after your [loadbang]s anymore
* $0 and __FILE__ are now the absolute path to the @file, so you can determine the folder containing
the @file (with File.dirname $0)
* Current directory (Dir.pwd) is now set to the user's home directory instead of "/"
* Added info outlet support. The info outlet also sends messages indicating various status changes,
like "fileloaded".
* @symbols_to was changed to @text_to and the behavior changed as follows:
- @text_to conversions only applies to text input (not numbers)
- the "string" conversion type now single-quotes the string
- a new "interpolated" conversion type double-quotes the string
* Added a JRubyForMax::SendReceive module containing methods for sending and receiving data between
any jruby objects in Max or Max for Live.
* Added a JRubyForMax::LiveAPI module to ease interacting with the Live API.
The main use case so far is reading and writing MIDI clips.
******************************************************************************
* Version 0.9.2 (when the object was ajm.ruby from "ajm objects") *
******************************************************************************
* Upgraded JRuby to version 1.5.5
******************************************************************************
* Version 0.9 (when the object was ajm.ruby from "ajm objects") *
******************************************************************************
* Multiple inlets are now supported. This is the first argument to the object,
and number of outlets is the second argument (it was previous the first).
If you were using multiple outlets, you must now add a first argument for
1 inlet. So [mxj ajm.ruby 3] becomes [mxj ajm.ruby 1 3].
The inlet() method reports the current inlet in your Ruby script.
* Evaluation by sending ruby code messages to the object's inlet now needs to be
prepended with the 'eval' message.
So instead of sending [puts 'hello'] you must now send [eval puts 'hello']
Adding a [prepend eval] before ajm.ruby's inlet is a simple way to update
existing patches that relied on the old behavior.
* @listproc is no longer supported. Any input that is a list automatically calls
the inlet() method. Use the 'eval' message to evaluate Ruby code.
* def list(*params) in Ruby has now been replace with def inlet(inlet_index, *params)
There are also in0, in1, ... in9(*params) convenience methods.
See the help patch for examples of usage.
* @evaloutlet's default value has changed from 0 to -1 (no output)
If you rely on evaluating scripts on-the-fly from Max messages, you either
explicit call out0 to send output to the outlet, or expliclty set @evalout 0
(note the preferred name of @evaloutlet is @evalout)
* The @scriptfile attribute is now deprecated in favor of @file
* The @evaloutlet attribute is now deprecated in favor of @evalout
* No gems are included with ajm.ruby anymore
* ajm.ruby now provides much more useful error messages
* unlike the old list() method, the inlet() method uses a splat for it's parameters,
so you can define this method like
def inlet(inlet_index, param1, param2, param3)
or
def inlet(inlet_index, *params)
to handle any number of parameters.
This is true for the in0, in1, ..., in9 convenience methods too.
* The directory of the @file is added to $LOAD_PATH so you can require
files relative to it.
* @files can be located relative to the current patch
* Double clicking a script that's running a @file will open that file
in the associated editor (based on your OS file associations)
* A 'call' message was introduced, see the "receiving input from Max"
section of the help patch
* A 'send' message was introduced, see the "receiving input from Max"
section of the help patch
* the number of files installed with ajm.ruby has decreased significantly
(we now use jruby-complete.jar instead of an unpacked ruby installation)
* __FILE__ is now set correctly when using @file to load a script
* A @ruby_version attribute was introduced to control the Ruby version on
a per-object basis. Valid values are @ruby_version 1.9 and @ruby_version 1.8
1.8 is the default. 1.9 support is still under development by the JRuby
developers so it may not be completely compatible with MRI Ruby 1.9.
* Ruby symbols now have the ':' prefix when output to Max
* JRuby upgraded to version 1.5.2
******************************************************************************
* Version 0.8.8 (when the object was ajm.ruby from "ajm objects") *
******************************************************************************
* JRuby upgraded to version 1.3.1
* Enabled Ruby 1.9 support
******************************************************************************
* Version 0.8.6 (when the object was ajm.ruby from "ajm objects") *
******************************************************************************
* $max_object_map stores references to all ajm.ruby objects
* max_object() lookup method (see help file)
* $max_objects is an array containing all ajm.ruby objects in the current
context
* added global variable storage system, set_global() and get_global() methods
* added convenience methods inlet_assist() and outlet_assist()
* initialization code externalized to the script file ajm_ruby_initialize.rb
* The $LOAD_PATH no longer includes all folders on Max's search path.
* properties file introduced to expose configuration options:
- ruby.initializers: initialization code for ajm.ruby
- ruby.loadpath: additional paths to include on the $LOAD_PATH
* Renamed some variables and methods to be follow standard Ruby naming
convetions:
- $MaxObject renamed to $max_object
- setLocal() and getLocal() renamed to set_local() and get_local()
The old names are still available for backward compatibility, but they are
now deprecated and will be removed at some point in the future.
* Ruby symbols are converted to Max Strings without a coercion warning
* Fixed a bug outputting arrays with 3 or more levels of nesting
* JRuby upgraded to version 1.1.5
******************************************************************************
* Version 0.8.1 (when the object was ajm.ruby from "ajm objects") *
******************************************************************************
* varargs support fixed for puts(), print(), and error()
* @scriptfile and '@evaloutlet -1' avoid unnecessary conversion to Max Atoms
(prevents pointless "coerced to string" messages in the Max window)
* JRuby upgraded to version 1.1.2
******************************************************************************
* Version 0.8 (when the object was ajm.ruby from "ajm objects") *
******************************************************************************
* Upgraded to JRuby 1.1.1 from JRuby 1.1 RC1
Improved performance/memory usage and thousands of compatibility fixes.
See http://jruby.codehaus.org/ for more info.
* Added scriptfile attribute - load a script from an external file
* The $0 variable will be set to the absolute path of the scriptfile, or nil
if no scriptfile is being used.
* ARGV and $* can be used to access any additonal arguments to scriptfile.
* Added context attribute - supports shared evaluator context between
any sequencer or ajm.ruby objects
* Improved message parsing behavior
- fixed a bug parsing Max symbols containing spaces
- the "text" message was added to better support textedit's one symbol
output mode: [route text] should no longer be used before ajm.ruby
* Improved search path behavior
- Ruby search path now includes any folder on Max's search path.
The search order is:
(1) the java/lib/ruby directory structure (standard libraries)
(2) Max's search path (see Options -> File Preferences)
- Any file on the search path can be loaded/required by filename instead
of the full path.
* Gems can now be loaded. But first they must be installed via a seperate
JRuby installation. See the NOTES section of the README for more info.
* Initialization of the ruby evaluator is deferred until the first script is
evaluated. This speeds up loading of patches with many ruby objects, but
there will be a slight delay when the first script evaluates.
* Added an autoinit attribute - use this to force initialization of the ruby
evaluator when the patch loads, eating the cost of initialization up front.
* Max lists sent to the inlet of [ajm.ruby] call a list() method that takes a
single array as an argument: def list(array) ...
The default implementation passes through the list. Redefine as desired.
* The list() behavior can be disabled by setting @listproc false
* Added methods out0(*params), out1, ..., out9
as shortcuts for outlet(0, *params), etc
* When nested arrays and hashes are coerced to Strings, the String should
be an accurate representation of the datastructure (i.e. you can pass it
to another ajm.ruby and it should evaluate correctly).
* Unnecessary conversions to Atom types are now avoided when evaloutlet < 0
* Long values outside the 32-bit integer range (-2147483648 to 2147483647)
are now coerced to a String when outputting to Max to avoid wraparound.