-
Notifications
You must be signed in to change notification settings - Fork 22
/
ChangeLog
687 lines (681 loc) · 32.3 KB
/
ChangeLog
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
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
v0.10.0 (Jul 30, 2013)
-----------------------
- refactor simple quicksort example
- improve echo example script
- remove Gemfile.lock & add to .gitignore
- add rake to Gemfile
- use bundle exec in travis before script as well
- try using bundle exec to get travis build working again
- add code example to Enumerable#find_by: docstring
- reorganize method position
- refactor Enumerable#find:
- refactor Ruby->Fancy interop.
- fix Object#backtick: docstring formatting
- fix error message in fspec to use specified test directory
- Revert set rbx version to 19 mode
- Merge branch 'rbx19' - Require rbx 1.9 mode
- set rbx version to 19 mode
- increase wait time in future test
- refactor future test
- fix FutureCollection test
- increase sleep time in future test to prevent failure on travis
- more fdoc refactoring & code cleanup
- add ruby aliases for Rubinius CompiledCode & ConstantScope
- refactor FDoc::Json#generate_map
- more fdoc refactoring and add progress indicator
- refactor fdoc JSON#initialize:
- shorter sleep in test
- Block#call_with_errors_logged - log to *stderr* by default
- small code cleanup
- add Class#method_documentation: and use it where it makes sense
- add docstrings and tests to FutureCollection
- cleanup Set tests
- add Set#clear
- improve code alignment
- cleanup Class::Contracts tests
- add test case for Range#to_s
- improve Range#inspect and add spec
- allow to specifiy more than one method associated with a FancySpec test case
- fix typo
- FancySpec cleanup
- add optional reraise: argument to Block#call_with_errors_logged_to: & Block#call:with_errors_logged_to:
- cleanup Block#to_object
- moved lib/eval.fy into lib/rbx/eval.fy since it's pretty rbx specific
- fix formatting
- cleanup
- cleanup ifancy CodeRay code highlighting
- add comments & docstring to Symbol for clarity
- fix symbol highlighting in ifancy
- Remove bug hunting expression.
- Fix parsing on / operator. closes #64. Refactor method_def parsing.
- let Class#nested_classes return a Set instead of Array
- reimplement Class#nested_classes and uncomment previously failing test
- cleanup method spec
- future spec cleanup
- don't use sleep for testing Class#lazy_slot
- remove calls to depecrated methods
- default to new version of Rubinius::VM.reset_method_cache
- add File##readlines:
- refactor String#blank?
- refactor lib/main.fy
- refactor fdoc & fix bug on rbx 19 mode
- add logo to README
- small refactoring of handling before/after blocks and also add missing docstrings
- add before: and after: handlers to FancySpec
- add Enumerable#max_by: & #min_by:
- return nil if Enumerable empty in Enumerable#superior_by:
- use inspect for Hash#to_s
- add OptionParser#parse_hash: and default to identity for option handler block
- specify parse: method for OptionParser tests
- update copyright notice for fancy -v cmd-line option
- update copyright notice in README
- small refactoring to Fancy::Enumerable#drop_while:
- improve docsrings in Fancy::Enumerable
- fspec: print any exception when loading test files instead of crashing completely
- display compile duration time for fancy -c option
- display total amount of files being compiled for -c command-line option
- fix Integer#decimals for negative numbers
- comment out DateTime class docstring for now
- Year update to LICENSE
- add DateTime to lib/rbx/
- HTML: add support for textarea
- HTML: refactor single tags & add img:
- add indent_offset to br tag as well
- add HTML#link: & HTML#script: gen methods
- refactor HTML#html_block:body:attrs:
- add indentation offset option to HMTL class
- add missing method identifiers to tests
- add Object#to_hash
- add Hash#to_object_deep
- add custom BasicObject#method_missing
- Add File##overwrite:with:
- add *fancy_root* dynvar
- fix failing travis test
- fix spec
- force rbx -X19 mode
- disable custom method chaining (+ before/after methods) for now (getting an error in 19 mode)
- test fix for 19 mode
- fix default value handling for Hash in 19 mode
- fix Range#to_a and add Enumerable#to_a
- fix many tests for 19 mode
- get ifancy working
- fix some bugs for 19 mode
- get Fancy working in Rubinius' 1.9 mode
v0.9.0 (Jun 05, 2013)
----------------------
- release v0.9.0
- let Class#nested_classes return a Set instead of Array
- reimplement Class#nested_classes and uncomment previously failing test
- cleanup method spec
- future spec cleanup
- don't use sleep for testing Class#lazy_slot
- remove calls to depecrated methods
- default to new version of Rubinius::VM.reset_method_cache
- add File##readlines:
- refactor String#blank?
- refactor lib/main.fy
- refactor fdoc & fix bug on rbx 19 mode
- add logo to README
- small refactoring of handling before/after blocks and also add missing docstrings
- add before: and after: handlers to FancySpec
- add Enumerable#max_by: & #min_by:
- return nil if Enumerable empty in Enumerable#superior_by:
- use inspect for Hash#to_s
- add OptionParser#parse_hash: and default to identity for option handler block
- specify parse: method for OptionParser tests
- update copyright notice for fancy -v cmd-line option
- Add Time#duration: and refactor fancy -c cmd-line option handling
- update copyright notice in README
- small refactoring to Fancy::Enumerable#drop_while:
- improve docsrings in Fancy::Enumerable
- fspec: print any exception when loading test files instead of crashing completely
- display compile duration time for fancy -c option
- use rbx-18mode in .travis.yml
- display total amount of files being compiled for -c command-line option
- fix Integer#decimals for negative numbers
- comment out DateTime class docstring for now
- Year update to LICENSE
- add DateTime to lib/rbx/
- HTML: add support for textarea
- HTML: refactor single tags & add img:
- add indent_offset to br tag as well
- add HTML#link: & HTML#script: gen methods
- refactor HTML#html_block:body:attrs:
- add indentation offset option to HMTL class
- add missing method identifiers to tests
- add Object#to_hash
- add Hash#to_object_deep
- Add File##overwrite:with:
- fspec: always require test_helper if it exists
- add Object#while:do:else: & Block#while_true:else:
- add *fancy_root* dynvar
- add Fancy wrappers for File##join: & File##dirname:
- improve tests for DynamicKeyHash
- fix DynamicKeyHash
- add support for test_helper file in fspec (load it before any other test files, if it exists)
- add Enumerable#sort: and fix Enumerable#sort_by:
- add Gemfile for bundler (needed by travis-ci for dependency management)
- add rubinius-actor as dependency and require it in lib/rbx/actor.fy
- add String#starts_with?:
- parse whitespace only code (including newlines) correctly and eval it to nil
- add newline after docstrings for consistency
- use map: in MethodDef
- remove unused variable from boot/extconf.rb
- simplify nested_classes example
- simplify echo example
- fix argv example
- simplify closure example
- add Block#call_with_errors_logged , #call_with_errors_logged: , #call_with_errors_logged_to: & #call:with_errors_logged_to:
- load c-readline by default and use rb-readline if not found
- don't alias ProxyReceiver to Proxy
- refactor Fancy::Package::Handler#load_fancypack:else:
- simplify Fancy::Package::DependencyInstaller#run
- cleanup some tests
- add guess the number example
- remove unused file
- refactor dynamic variable access & storage.
- use Object#ignoring:do: in Fancy::Packages::List#packages
- fix docstring for Object#ignoring:do:
- also print package url in Fancy::Package::List#println
- cleanup lib/argv.fy and add docstrings
- Object#synchronized: calls a given block with self.
- move Module / Class inclusion into lib/rbx/alpha.fy
- fix Enumerable#drop_last: docstring
- add Enumerable#drop_last:
- pass return value of first block as argument to second in Block#after: & #then:
- cleanup
- improve Fancy::Enumerable#superior_by:taking:
- simplify Fancy::Enumerable#average and add tests for #sum , #product & #average
- add Fancy::Enumerable#one?: & #none?:
- ensure order independence in min_max & min_max_by:
- add Fancy::Enumerable#min_max & Fancy::Enumerable#min_max_by:
- add Fancy::Enumerable#group_by:
- add String#lowercase? & String#uppercase?
- add Fancy::Enumerable#chunk_by:
- moved flick theme stuff into main dir
- hide dysfunctional fdoc search bar
- fix fdoc design (use flick theme and removed broken jquery-ui theme switcher
- make sure to rewind in Enumerator#to_a
- include Fancy::Enumerable into Fancy::Enumerator
- small cleanup
- use && in Directory##exists?:
- allow single method name for Class#provides_interface?:
- use partial blocks
- cleanup in Array and Fancy::Enumerable
- improve Array#from:to: and add test for it
- code & spacing cleanup in ifancy
- some fixes and improvements to Feature help output in ifancy
- use File##read:with: and File##write:with: in ifancy
- fix spacing
- simplify Hash tests
- add default value / block support to Hash
- add Hash#with_value_for_key:do:else:
- fix formatting and minor cleanup in ifancy
- exit from REPL on EOF
- fix spacing, remove trailing whitespace.
- cleanup
- Reformatting tabs to spaces to adhear to fancy's style practices
- Quick change to the SYMBOL pattern matching in ruby_lib/interactive/hilight.rb to fix the incomplete regular expression
- Merge pull request #69 from swarley/master
- Improvements to the REPL (ifancy) backwards compatibility has been preserved. A better API for loading plugins will come shortly to allow for easier adding of user plugins. If coderay is present, syntax hilighting will be used on returned values. Features have been implemented, documentation to come.
- use retry instead of return for Fancy::NextIteration
- also catch Fancy::NextIteration in Block#while_true:
- reformat docstring
- move Array#select_with_index: into Enumerable
- fix docstring for Array#select_with_index:
- fix bug caused by bootstrap compiler not supporting partial blocks with operator sends. need to fix this.
- fix Symbol#arity to return the correct value
- update README: fancy also runs on OSX 10.7
- Update min. required Rubinius version in README.
- allow multiple argument blocks to be returned from Symbol#to_block
- add Block#to_block
- cleanup in test case
- add Enumerable#flat_map: and add some missing aliases to Array and String needed during bootstrap
- add Enumerable#for_every:do:
- remove obsolete file: boot/rsexp_pretty_printer.rb
- fix README files in boot/
- fix class method example in doc/features.md
- rename Enumerable#for_all:with_index_do -> #for_every:with_index_do:
- add Enumerable#for_all:with_index_do: and fix #find_with_index:do:
- add Enumerable#find:do: #find_with_index:do: #last_index_of:
- add Symbol#call_with_receiver: and Symbol#call:with_receiver:
- add Block#then: & Block#after:
- small cleanup in compiler
- add Object#is_a: to FancySpec
- add Symbol#to_block
- simplify bootstrap versions of Class#private:, #protected: & #public:
- Use fancy method instead of ruby version
- Deprecate block invocation via ruby-send syntax
- indentation fixes and cleanups
- refactor package dependency install
- add Hash#update_keys: #update_values: #with_updated_keys: #with_updated_values:
- Add Block#to_object_deep
- fix bug in compiler for singleton method defs with an empty body
- add String#camel_cased and String#snake_cased
- simplify File##read_config:
v0.8.0 (Aug 29, 2012)
----------------------
- Cleanup method definition bytecode generation.
- relocating some bootstrap code
- ignore Exceptions raised in ensure_block in Object#let:be:in:ensuring:
- rename Object#dclone -> Object#dup for consistency with other classes implementing dup
- fix Hash#to_hash_deep and add tests
- add Hash#to_hash_deep
- add optional ensure_block parameter to Object#let:be:in:
- add File##append:with:
- add NilClass#to_hash
- add Object#_
- add support for passing blocks to Class#private:, Class#protected: & Class#public:
- fix formatting in lib/fdoc.fy
- fix docstrings for Fancy::Package::Installer
- simplify Fancy::Package::Installer#latest_tag
- remove ::
- Pass correct arguments to Fancy::Package##install:version: when installing package dependencies.
- fix errors with package installation when no git tags are available for versions.
- add support for toplevel constants via ::ConstName
- use to_sym instead of to_sym()
- Fix docstring indentation
- Moved proxy classes into Proxies namespace.
- Add DistributingProxy
- Add Regexp#call:
- Add instance_variable_get / instance_variable_set to ruby_aliases in Object
- Use __send__ in boot/fancy_ext/class.rb
- add StandardError##raise:
- cleanup examples/ dir
- delete symlinks to bin-files when uninstalling a package
- use alias_method:for_ruby: in Regexp
- rafactoring, add Class#remove_slot_accessors_for:
- add newline
- check if documentation available before calculating CompiledMethod#definition_line
- add link to dev blog
- Fix referenced method names.
- Print out invalid method names referenced by test cases in spec. Also print all errors to *stderr*.
- Add String#to_fancy_message & Symbol#to_fancy_message
- Add Class#has_method?:
- Add Class#rebind_instance_method:with:within:receiver: and Object#rebind_method:with:within:
- Add ruby alias for UnboundMethod#bind:
- Allow non-Block arguments to Class#define_method:with:
- Add docstrings to StringIO
- cleanup code with empty methods
- require lib/stringio in tests/stringio.fy
- simplify Stack#pop
- add String#main? & String#if_main:else:
- add System##aborting:do:
- use OptionParser in bin/fspec
- fix typo
- small cleanup
- Use new Binding#constant_scope (was renamed from static_scope a while ago in Rubinius).
- make sure dynvars always start & end with '*'
- use receiver methods instead of its class' instance methods in ifancy
- fix docstring for Hash#call:
- Add Hash#call: and Hash#to_block
- Make Specification#package_name a writable slot
- rename remaining Fancy::Packge::Specification#rubygem_dependencies sends
- rename rubygem_dependencies -> ruby_dependencies in Fancy::Package::Specification
- small cleanup
- fix Integer#times_try:retry_with:
- make sure finally block gets run even when raising an exception within a catch block
- some cleanup to try/catch/finally blocks in Object
- Catch StandardError instead of Object when no exception class defined for catch block
- add testcase to tests/exception.fy
- cleanup in CodeLoader
- just use call_on_instance in Block#call_with_receiver:
- some fixes to try/catch/finally bytecode generation
- Cleanup lib/parser/methods.fy
- Add String#to_i:
- Support Block arguments passed to Array#index:
- Code cleanup in compiler code
- Add docstring for File##read_binary:
- Fix whitespace.
- fix FancySpec docstrings and make sure to generate documentation for FancySpec in fdoc
- fix FalseClass docstrings
- add docstring to Fancy##eval:binding:file:line:
- Improve / Add docstrings
- cleanup old code
- Add example for -github-repo option in fdoc
- fix spacing
- Add Object#ignoring:do:
- Add Matchers module with MatchAny and MatchAll matchers.
- Add Class#expose_to_ruby:as:
- Add doctoring to Class#class_eval:
- Add Fancy::Enumerable#join_by:
- Add Fancy::Enumerable#rest
- Simplify Array#each:
- Handle Fancy::NextIteration in Tuple#each:
- Add support to fdoc for custom github-links via -github-repo option.
- Add github octocat icon to doc/api/ and always show it on fdoc generated page.
- Rewrote bin/fdoc as a simple fancy script and put all logic in lib/fdoc.fy.
- Fix issue in CompiledMethod#definition_line
- Fix docstring for Fancy::Package::Installer
- Fix Package installer to use new Github API (v3). Fixes #68
- Use File#delete!: in Package uninstaller
- Add File#delete!:
- Fix docstring for Directory#list:
- remove unnecessary parens
- Small doctstring tweak for Block#*
- FDoc: Allow multiple code blocks in docstrings.
- Add Block#*
- Fix Array##new:with: docstring
- FDoc: align argument descriptions in generated html nicely
- Improve Array method docstrings
- fix Symbol docstrings
- fix typo in docstring
- Fix FDoc html generation for code examples.
- Fix doctstrings for Integer methods
- Fix StringInterpolation with __FILE__
- Improve FDoc documentation generator tool.
- Add File##absolute_path: (alias for File##expand_path:)
- Improve __FILE__ special string compilation
- add Hash#reject_keys:
- Add remove_after_parsed option to OptionParser.
- Sort by option name when printing --help info in OptionParser
- add String#multiline?
- fix CompiledMethod#definition_line for non-multiline docstrings
- Add CompiledMethod#definition_line & CompiledMethod#last_line and use that in fdoc
- Fix UnboundMethod#selector_with_args for [] and []: methods.
- Fix Class#class_eval: for String arguments
- Add before/after/around methods & blocks to classes.
- add UnboundMethod#call: and Method#call:
- only print banner in OptionParser if any given
- add OptionParser class
- Add Enumerable#grep: & Enumerable#grep:taking:
- add Integer#decimals
- Small cleanups in lib/rbx/debugger
- Add initial version of debugger support
- Allow 1-arg blocks passed to Object#do:
- moved Class#ruby_methods and Class#fancy_methods into Object
- fix docstring for Class#new & Class#new:
- add alias Class#expects_interface:
- rename contracts error class
- Add contracts / runtime enforceable interface definitions.
- add assertion to String#[] test
- use each_with_index: in Fancy::Enumerable#at:
- fix require in package uninstaller
- fix error location output in FancySpec
- Make Directory class an alias for Ruby's Dir class.
- close opened source files
- catch StandardError instead of Exception
- simplify handling of string interpolation in parser
- forward unary methods in MatchData and Regexp#match:
- add Hash#random, Hash#random_key & Hash#random_value
- fix typo in Fancy::Enumerable#take: docstring
- Add Fancy::Enumerable#first: and Fancy::Enumerable#last:
- Add Fancy::Enumerable#split_with: and Fancy::Enumerable#split_at:
- Merge branch 'master' of github.com:bakkdoor/fancy
- use includes?:
- use includes?:
- fix spacing
- Add Fancy::Enumerable#sorted?
- Add ruby_alias for '<=, '>=, '<=> on String.
- fix docstring for Hash#select_keys:
- Add more Class methods
- Add Hash#select_keys:
- update README
- fix code indentation in README
- Clean up README
- some fdoc & docstring fixes
- fix Enumerable#in_groups_of: when passed size <= 0
v0.7.0 (May 05, 2012)
----------------------
- ignore TAGS
- Moved FANCY_VERSION to Fancy::VERSION and bumped it to 0.7.0
- added Array#-
- some refactoring to Fancy Package classes
- updated fancy --help output (added list-packages option)
- Implemented Fancy Package Uninstaller and refactored parts of Installer out into Package Handler class.
- fixed method name in test
- added Class#instance_methods: and Class#methods:
- added support for installing/symlinking bin_files in package system
- added Fakefile list of auto-mode-alist for fancy-mode
- push NilLiteral in empty singleton method definition
- Added link to new twitter profile in README
- removed another .fy extension in lib/boot.fy
- omit .fy ending in lib/boot.fy
- added DynamicValueArray test
- added DynamicKeyHash test
- added tests for DynamicSlotObject
- set slot reader/writers in DynamicSlotObject#object itself
- added docstrings for DynamicKeyHash, DynamicSlotObject & DynamicValueArray
- more cleanups in Enumerable
- fixed docstring typo and default arg value for Enumerable#superior_by:taking:
- renamed Enumerable#uniq => Enumerable#unique
- added travis build status image to readme
- added notifications back to .travis.yml
- added -d option to fspec and also sort test files by name
- moved random into Number mixin
- remove rbx-2.0.0pre rvm option
- small fix to .travis.yml
- updated .travis.yml
- fixed String class docstring
- a bunch of Enumerable related refactorings, also added common to_s method and other improvements
- added Enumerable#count:
- added unless:then:else: alias for unless:do:else:
- simplify example and testcase
- Return superclass, if any, as well in Class#inspect
- added File##read_config:
- added ActorProxy class
- print amount of files compiled for fancy -c option
- added retry_with: parameter to Integer#times_try:retry_with:
- simplified stupid quicksort example
- updated copyright notice in README
- Refactored Object#message_name: into Symbol#message_name and String#message_name.
- Hash cleanup
- Added Class#lazy_slot:value:
- added File##eval:
- Added File##read_binary:with: and File##read_binary:
- Default to reading binary in File##open:
- Added IO#read: alias
- Fixed define_forward_method_missing call in compiler by adding missing pop instruction at the end
- make some class methods public
- fix set test: don't rely on ordering of values in set
- fix typo
- added Integer#times_try:
- fixed bootstrap bug
- added Module#[]: for setting constants within modules and classes
- some cleanups to Enumerable class
- added get_slot: and set_slot:value: in Hash
- added Alias for Fixnum#^ (bitwise xor)
- Use __send__() instead of send()
- moved BasicObject into Fancy namespace
- added Object#lambda:
- Added lib/rbx/proc
- Year update to LICENSE
- cleanup Rakefile
- allow single method names be passed to Class#delegate:to_slot:
- Added FutureSend#when_failed:
- small bugfix for Class#delegate:to_slot:
- allow more flexible usage of whitespace in hash literals.
- allow hash literals with trailing commas at the end, similar to tuples and arrays
- Added Class#delegate:to_slot:
- Added Class#class_eval: wrapper method.
- Added Enumerable#map_with_index:
- Always use stringliteral as docstring if its the first expression in an ExpressionList (method/class defs).
- cleanup
- added Object#with_mutable_slots:do:
- don't exit programm within lib/fancy_spec but in bin/fspec instead, for better seperation of concerns.
- Small fix to Tuple#from:to: to allow Tuples to be used in splat-assignments as well.
- added Tuple#from:to:
- typo fix in docstring
- Added docstring to FutureSend class
- true, false & nil only behave like message sends when explicitly expressed that way syntactically.
- refactored Array#[]
- Moved Array#first - #fourth to Enumerable
- Improved Array#[] and String#[] and updates tests
- properly end comment for fancy-mode.el
- Merge remote-tracking branch 'origin/master'
- Published fancy-mode.el on marmalade-repo.org.
- typo fix in docstring
- added Enumerable#map_chained:
v0.6.0 (Jan 25, 2012)
----------------------
- More Docstrings
- Added docstrings to FutureSend
- Added docstring for File#expanded_path
- Bumped version for next release so it won't be forgotten.
- Pass args as explicit array to Block#call:
- use partial blocks where appropriate
- backported support for partial blocks to bootstrap compiler
- small naming fixes
- uncomment assertion
- Fix typo in KVO docstring
- Added KVO Mixin - Objective-C style Key-Value Observing
- Removed explicit typecheck in Array#remove_at:. It's bad..
- added Enumerable#to_hash:
- Fixed bug in FancyEnumerable#find:
- fixed Hash testcase to not rely on order of values in Array returned by Object#slots
- some fixes to Object docstrings
- fix bootstrap failing error. dammit.
- added fancy syntax highlighting to doc/features.md
- fixed Set#[]
- small positional fix
- fixed FutureSend#when_done: and also added FutureSend#with_value: as an alias for #when_done:
- Don't crash the vm when dealing with a parse/lex error. Closes #66
- cleanup
- added File##write:with: and File##read:with:
- Added Fancy code highlighting to README file
- Quit ifancy when entering 'quit' or 'exit'. Closes #67
- added System##abort
- added Fancy MessageSink class.
- added auto-load for files with fancy shebang line
- added support for Module#included: hook.
- added Hash#to_object
- renamed Block#object to Block#to_object for consistency reasons
- Moved installation logic for ruby dependencies in .fancypack files into RubyDependency class. And make sure to also install Ruby dependencies when running fancy install --deps
- Allow return as message selector and transform it at compile time into raise_returning it. This means that the following 2 lines of code are identical: (1,2,3) each: |x| { x println; return x } # and the new version: (1,2,3) each: |x| { x println; x return } # or short, using partial blocks: (1,2,3) each: @{ println; return }
- moves FancyEnumerable and FancyEnumerator into Fancy namespace instead of prefixing their names
- added Object#tap:
- fixed typo in Module#[] and added tests for it
- added some methods to Module
- added Array#to_hash
- added Object#copy_slots_from:
- added Block#to_hash_deep
- added Hash#fetch:else:
- added String#relative_path:
- Added Set#[]
- Added Tuple##with_values:
- Moved Array#each_with_index: into FancyEnumerable.
- added System##abort:
- added alias for Method#executable
- docstring fixes to String class
- added docstrings for aliased String methods
- reformatted docstring
- String#uppercase & String#lowercase
- added Symbol#to_sym
- cleanup
- added more aliases to Date
- Added Number#upto:in_steps_of:do: and Number#downto:in_steps_of:do:. Also moved Number specific tests into tests/number.fy
- added ruby alias for Array#flatten
- fixed docstring formatting for FDoc class and handle @{ partial block syntax correctly
- Reraise any exceptions thrown within a let binding's block.
- added another testcase for Block#to_a
- Return self for easy chaining
- Added Block#to_a for dynamically creating Arrays from Blocks, similar to Block#object and Block#to_hash
- Small fix to web server example and some Socket class changes.
- File improvements.
- Merge branch 'master' of github.com:bakkdoor/fancy
- check for eof? in Console#readln:
- added Hash#at:else:
- allow '. as symbol name
- Merge branch 'master' of github.com:bakkdoor/fancy
- Added Number#cubed.
- added mission lib/stringio.fy file
- always call blocks with html object
- changed partial blocks to send any messages in the block that don't have an explicit receiver to the first argument. this is nice for dsls while not changing the value of self unexpectedly
- added Enumerable#skip: as alias for Enumerable#drop:
- added Block#[] as alias for Block#call:
- small improvements to HTML class
- added html generator library
- added lib/parser/ext/.rbx/ to .gitignore
- Remove travis ci build status image since travis fails to run my tests correctly at the moment, even though they are passing.
- improved performance for Block#object and Block#to_hash
- use set to prevent failure in case the slots aren't returned in the exact same order
- fix bootstrap failure
- Let Object#slots return an Array instead of a Set.
- A bunch of optimizations for string interpolations and stuff.
- small improvement to Block#to_hash
- Some improvements to DynamicSlotObject and added Block#to_hash
- Added support for installing dependencies from a .fancypack file. Looks in the current directory. Run via: $ fancy install --deps
- added Block#object
- added TCPSocket#read:
- Added support for creating Arrays with a predefined size and a block to call for each element in that Array. Also added some more TCPSocket method wrappers.
- fix test
- explicitly wait for future completion
- Fix string interpolation for multi-line strings. Also added Regexp#m and Regexp#x methods.
- Get rid of old test
- Moved Method class doctstring.
- More docstrings to methods and classes in lib/rbx/ dir.
- fixed docstring for Fancy::Package::Uninstaller
- added docstring for Array#unshift:
- removed old spec file
- added String#substitute:with:
- Small fixes to html generator example
- Added Fixnum#random
- Small test with travis config.
- Added unary ruby methods to File class, ARGV#main?: and some more.
- small fix to highlighting of message selectors in fancy-mode.el
- added << and >> ruby aliases for Bignum and Fixnum classes (for left and right shifting)
- removed duplicate select: method from Array (already in FancyEnumerable)
- Updated AUTHORS file
- Catch errors when passing weird characters to RbReadline.
- Added tab-completion to infancy. Use RbReadline explicitly over c-readline as we need support for Readline#line_buffer which only RbReadline provides. Try to eval the current receiver when auto-completing method names, if possible.
- Correctly highlight dynamic variables.
- bumped version in lib/version.fy - oops...
- added Object#with_output_to:do:
v0.5.0 (Oct 05, 2011)
----------------------
- Use ruby instead of rbx in fancy_lib/ scripts that are used when fancy is installed via rubygems.
- Revert Converted ruby_lib/ scripts to shell scripts to make them run faster.
- Merge branch 'better_docstrings'
- Updated Changelog
- Converted ruby_lib/ scripts to shell scripts to make them run faster.
- Small fix to Block#while_true: docstring
- prepare for v0.5.0
- Use fast instructions for certain operations when compiling MessageSends. This speeds up things like Fixnum arithmetic.
- Require rubygems and ruby dependencies in generated include file when installing a fancy package.
- Small improvements to actors example
- Merge branch 'master' of github.com:bakkdoor/fancy
- Added FutureSend#failure and use correct mutex in FutureSend#failed:
- added another dynamic scoping example using *stdout*
- Removed weird goto shit
- Fixed docstrings formatting so example code is formatted correctly on api.fancy-lang.org
- Performance improvements for loops of up to 10x in certain cases by using dynamic_method() for the lower-level logic of while_true:. Still allow next/break to work, as expected by wrapping lower-level implementation in Block#while_true:. #speeed!
- Added more methods and tests to Array and Tuple.
- Added Symbol#arity for compatibility with Block api.
- Small doctoring fix to Object#do:
- Simplified Person example
- Simplified actor ring example.
- Added @return to doctoring for Object#do:
- Small fix to boot/code_loader so bin/fdoc works again.
- Removed obsolete Array#any?:
- Return false in FancyEnumerable#any?:
- Added Symbol#call in boot/fancy_ext/ to allow symbols being used as callables when passing them to ruby code.
- Use alias for Ruby's Array#[]= in Array#[]: instead of Object#ruby:args:
- Small changes to Array methods.
- Added Class#ruby_aliases:
- Small improvement to Array#inspect
- small fix to fancy-mode.el for parsing symbols
- small typo fix
- updated README and doc/features (mentioning dynamic scoping)
- Added boot/fancy_ext/bootstrap.rb which is needed during bootstrap process so *stdout* is defined and rake -v works.
- Use short-cut conditional messages in Block methods.
- Added missing FalseClass#if_nil:else:
- Return self in Object#do:
- Use String#include? in Object#message_name: to get rid of weird crash on rbx-2.0.0pre. Need to look into the actual cause of the crash later.
- print duration of running tests when running fspecp
- Small fix to FutureSend: Send future message to receiver's actor after setting up FutureSend object.
- Don't auto-load FancySpec on startup. Load it explicitly in bin/fspec instead.
- small fix to copying dynamic vars in Thread#new
- Added support for preserving the values of dynamic vars when spawning a new thread based on the values in the current thread.
- Small fixes to tests.
- Added lib/vars.fy and load it in lib/boot.fy on startup. Also use *stdout* in Object#println.
- Added support for dynamic variable bindings using let:be:in:. Uses * surrounding variable names to indicate dynamic variable, e.g. *stdin* or *dynamic_var*.
- Added another Future test
- ignore .rbx dir
- Fixed concurrency issues with FutureSend class on rbx-2.0.0pre
- Added ConditionVariable wrapper class.
- Added Mutex wrapper class to lib/rbx/.
- Sort values before comparing in Set test.
- Array#println returns nil
- More tests for Set
- Added missing tests for Stack.
- Use reverse_each: in Stack#each: