forked from chapel-lang/chapel
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCHANGES
4904 lines (4401 loc) · 240 KB
/
CHANGES
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
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
====================
Release Changes List
====================
==============
version 1.12.0
==============
Fifteenth public release of Chapel, October 1, 2015
Highlights
----------
* significantly expanded the coverage of our online documentation
(see http://chapel.cray.com/docs/1.12/ and "Documentation" below)
* added new 'Barrier', 'Spawn', and 'LAPACK' modules to the standard set
(see "Standard Library/Modules" section below)
* added chplvis: a new tool for visualizing Chapel communication and concurrency
(see http://chapel.cray.com/docs/1.12/tools/chplvis/index.html)
* added a new chapter describing Chapel's memory consistency model in detail
(see 'Memory Consistency Model' in the language spec)
* added a 'vectorizeOnly()' iterator that vectorizes without task creation
(http://chapel.cray.com/docs/1.12/modules/internal/ChapelIteratorSupport.html)
* new performance optimizations, particularly intra- and inter-node locality
(see "Performance Improvements" section below)
* removed the 'local' block from stream-ep based on the above optimizations
(see examples/benchmarks/hpcc/stream-ep.chpl)
* changed the default tasking layer on 'cray-x*' to 'qthreads' for performance
* added support for type methods and iterators
(see 'Classes::Class Method Calls::The Method Receiver and the this Argument')
* added support for public/private module-level variables, functions, modules)
(see 'Modules:Access of Module Contents::Visibility of Module's Symbols')
* domains in formal array arguments are now interpreted as a constraint
(see 'Arrays::Array Arguments to Functions' in the language spec)
* significantly revamped and improved correctness and performance testing system
* improved how internal error messages are displayed to users
* added Chapel Improvement Proposals (CHIPs) framework for proposing changes
(see https://github.com/chapel-lang/chapel/blob/master/doc/chips/1.rst)
* made more bug fixes than any release since version 1.1
(see "Bug Fixes" section below)
* addressed portability issues for a number of platforms and compilers
Process Improvements
--------------------
* added Chapel Improvement Proposals (CHIPs) framework for proposed changes
(see https://github.com/chapel-lang/chapel/blob/master/doc/chips/1.rst)
Environment/Configuration Changes
---------------------------------
* 'printchplenv' now indicates which settings come from environment variables
* made the quickstart scripts turn CHPL_LLVM off by default
* removed dependencies on 'bc' and 'patch'
Tool Changes
------------
* added chplvis: a new tool for visualizing Chapel communication and concurrency
(see http://chapel.cray.com/docs/1.12/tools/chplvis/index.html)
* chpldoc improvements:
- improved handling of enum, real, imag, and complex initializers
- 'chpldoc' now generates values for enum symbols
- automatically skip documentation of 'private' symbols
- squashed generation of 'inline' in output
- added support for --print-commands with chpldoc
* chpl-ipe:
- added a quit() primitive for clean exits from the environment
Syntactic/Naming Changes
------------------------
* changed 'use' to 'require' for header files and external libraries
(see http://chapel.cray.com/docs/1.12/technotes/extern.html)
* replaced the standalone format() routine, with string.format()
(http://chapel.cray.com/docs/1.12/modules/standard/IO.html#IO.string.format)
* renamed memory diagnostics capabilities for clarity
(see http://chapel.cray.com/docs/1.12/modules/standard/Memory.html)
* changed the '##.##' writef() pattern so that it requires '%{...}' around it
(see http://chapel.cray.com/docs/1.12/modules/standard/IO.html#specifiers)
* added support for form-feed characters ('\f') as whitespace
(see 'Lexical Structure::White Space' in the language specification)
* changed the term 'blank intent' to 'default intent'
(see 'Functions::Argument Intents::Abstract Intents::The Default Intent')
Semantic Changes / Changes to Chapel Language
---------------------------------------------
* domains in formal array arguments are now interpreted as a constraint
(see 'Arrays::Array Arguments to Functions' in the language spec)
* Chapel no longer keeps referenced variables alive past their lexical scope
* c_strings are no longer made into strings when passed to generic extern args
* 'select' statements now only evaluate their argument expression once
New Features
------------
* added a 'vectorizeOnly()' iterator that vectorizes without using multitasking
(http://chapel.cray.com/docs/1.12/modules/internal/ChapelIteratorSupport.html)
* added support for type methods and iterators
(see 'Classes::Class Method Calls::The Method Receiver and the this Argument')
* added support for public/private module-level variables, functions, modules)
(see 'Modules:Access of Module Contents::Visibility of Module's Symbols')
* added support for methods on enumerated types
(e.g., 'enum color {red};' permits 'proc color.foo() { ... } color.red.foo();')
* added support for hexadecimal floating point literals
(see 'Lexical Structure::Tokens::Literals' in the language specification)
* added the ability to rename extern records for use within Chapel
(see 'Interoperation::...::Shared Types::Referring to External C Structs')
* added support for -lchplmalloc for compilers supporting weak symbols
(see http://chapel.cray.com/docs/1.12/technotes/allocators.html))
* added the ability to use 'continue' statements in 'param' for-loops
* added support for == and != operators on domain maps
Standard Library/Modules
------------------------
* added a new 'Barrier' module defining a simple collective barrier capability
(see http://chapel.cray.com/docs/1.12/modules/standard/Barrier.html)
* added a new 'Spawn' module for creating new subprocesses
(see http://chapel.cray.com/docs/1.12/modules/standard/Spawn.html)
* added a new 'LAPACK' module that provides an interface to LAPACK
(see http://chapel.cray.com/docs/1.12/modules/standard/LAPACK.html)
* added support for common mathematical constants to 'Math.chpl'
(see http://chapel.cray.com/docs/1.12/modules/standard/Math.html#Math.e)
* replaced standalone format() routine with string.format() in 'IO'
(http://chapel.cray.com/docs/1.12/modules/standard/IO.html#IO.string.format)
* unified string.format() format strings with writef()
(http://chapel.cray.com/docs/1.12/modules/standard/IO.html#formatted-i-o)
* added a getFileSize() routine to the 'FileSystem' module
(see http://chapel.cray.com/docs/1.12/modules/standard/FileSystem.html)
* merged the contents of the 'UtilMath' module into 'Math'
(see http://chapel.cray.com/docs/1.12/modules/standard/Math.html)
* improved the 'Memory' module:
- renamed memory diagnostics capabilities for clarity
- added a --memLeaksByDesc flag to track only certain types of leaks
- stopped tracking memory allocations not related to Chapel code by default
(see http://chapel.cray.com/docs/1.12/modules/standard/Memory.html)
* errorToString(ENOERR) now portably returns "No error" in 'Error' module
(see http://chapel.cray.com/docs/1.12/modules/standard/Error.html)
* applied the 'private' keyword to standard modules as appropriate/possible
Performance Improvements
------------------------
* parallelized large numeric array initialization for better first-touch
* improved analysis and optimization of variables that are provably local
* fixed a bug in which non-blocking 'on's were counted as local running tasks
* improved task counting when one task is waiting for others to complete
* optimized task counts to use processor atomics when profitable
* made 'cray-x*' systems default to 'qthreads' over 'muxed'
* moved polling threads to the last available CPU to avoid contention
* made array allocation use calloc(), not malloc() for better first-touch
* enabled more optimizations and streamlined code when using the LLVM back-end
Memory Improvements
-------------------
* stopped leaking sync and single variables on all platforms except Cygwin
* eliminated leaks for heap allocated variables used in cobegin/coforall
Documentation
-------------
* mirrored many of the READMEs from the release onto our online documentation
(see http://chapel.cray.com/docs/1.12/usingchapel/ and .../1.12/technotes)
* added online documentation for built-in types, functions, methods
(see http://chapel.cray.com/docs/1.12/modules/builtins.html)
* added online documentation for standard domain maps (layouts and distributions)
(http://chapel.cray.com/docs/1.12/modules/distributions.html and layouts.html)
* added a copy of the online html documentation to the release itself
(see $CHPL_HOME/doc/html)
* converted most READMEs to ReStructured Text (.rst) or markdown (.md)
(for example, see $CHPL_HOME/doc/* and $CHPL_HOME/doc/technotes/*)
* refreshed the contents of most former READMEs as part of this effort
* language specification updates:
- added a new chapter on Chapel's memory consistency model
- added documentation of the I/O operator, <~>
- improved the specification's page numbering and format
- retired standard library chapters from the spec now that they're online
(see http://chapel.cray.com/spec/spec-0.98.pdf)
* standard module documentation improvements
- added a "Formatted I/O for C Programmers" table to the IO module
(see http://chapel.cray.com/docs/1.12/modules/standard/IO.html#formatted-i-o)
- refreshed the documentation of other standard modules
* refreshed the contents of the C interoperability technical note
(see http://chapel.cray.com/docs/1.12/technotes/extern.html)
* retired README.format due to its documentation as part of a standard module
(http://chapel.cray.com/docs/1.12/modules/standard/IO.html#IO.string.format)
* removed Tilera-specific documentation due to lack of use and testing
Example Codes
-------------
* rewrote the 'stream-ep' example to remove the now unnecessary 'local' block
(see examples/benchmarks/hpcc/stream-ep.chpl)
* added a copy of Chapel code from learnXInYMinutes site to examples/primers
(see examples/primers/learnChapelInYMinutes.chpl)
* added a primer for the new 'chplvis' tool
(see examples/primers/chplvis/README)
* added a primer for the new LAPACK module
(see examples/primers/LAPACKlib.chpl)
* added a new examples/patterns directory for storing common code patterns
(see examples/patterns/README)
* added patterns/recordio.chpl to demonstrate reading tab-delimited records
(see examples/patterns/recordio.chpl)
* updated shootout/nbody.chpl to use 'ref's rather than nested procedures
(see examples/benchmarks/shootout/nbody.chpl)
* replaced uses of format() with writef() in SSCA2 benchmark
(see examples/benchmarks/ssca2/)
* made the fileIO primer more tolerant of floating point roundoff
(see examples/primers/fileIO.chpl)
* made the FFTW primer self-validating w.r.t. numerical differences
(see examples/primers/FFTWlib.chpl)
* removed 'param' from lulesh loops that probably don't want/need it
(see examples/benchmarks/lulesh/)
Compiler Flags (see 'man chpl' for details)
-------------------------------------------
* redefined --fast to no longer imply --no-ieee-float
* added --[no-]ieee-float support for CHPL_TARGET_COMPILER 'clang' and 'intel'
* made --ccflags arguments stack rather than override one another
* added support for --print-emitted-code-size for the LLVM back-end
Execution Flags
---------------
* added a --memLeaksByDesc flag to track only certain memory categories
* made --memLeaks[ByDesc] be governed by the --memTreshold flag
Error Message Improvements
--------------------------
* improved how internal error messages are displayed to users
* improved error messages for runaway comments
* improved source location provided by 'noinit' warnings
Bug Fixes
---------
* forall loops over a single array now correctly use the standalone iterator
* fixed bugs with applying reduce intents to forall loops over domains/arrays
* fixed bugs with scope resolution's choice of which symbol to resolve to
* fixed a bug in which overloads of '|' broke internal modules
* fixed a bug related to extern variables of types like c_ptr(c_int))
* fixed an internal error when a class calls its parent class's destructor
* fixed a bug in which large array copies could overflow runtime arguments
* fixed a bug in which calls of the form '<type>(x)' would cause internal errors
* fixed a bug in I/O when skipping whitespace encountered illegal characters
* fixed printing/reading of integers with '%{##.##}' format
* made readf() calls without error arguments halt on mismatches
* fixed a bug in which trailing whitespace was being consumed too aggressively
* made default rectangular arrays print in JSON as arrays-of-arrays
* fixed EOF-related bugs in Reader/Writer
* fixed a bug in which channel.read(style) was ignoring its style argument
* fixed a bug in which non-blocking 'on's were counted as local running tasks
* fixed a compiler exception caused by dividing by param '0'
* fixed a bug in the is*() FileSystem functions when given an invalid path/link
* improved chpldoc's handling of failure to create output and tmp directories
* added an error message for too-long compiler flags rather than truncating
* fixed a bug in which calls to malloc/free/etc in extern blocks caused errors
* fixed 'text file busy' errors in certain situations when invoking 'chpl'
* fixed a bug in which overloading was being permitted based on argument intents
* fixed a segfault in the glob() iterator when following 0..0 with 0 matches
* fixed a bug in which bad source location info was passed to string routines
* preserved source location information for cobegins
* fixed a bug relating to inlined iterators and generic array fields
* fixed a bug relating to passing c_strings to extern C functions
Platform-specific Changes
-------------------------
* made 'cray-x*' systems default to 'qthreads' over 'muxed'
* 'muxed' tasking now supports stack guard pages for non-hugepage heaps
(see http://chapel.cray.com/docs/1.12/platforms/cray.html)
* added support for 'clang-included' to work with GASNet on Cray systems
* removed support for cray-prgenv-pgi from the module build on 'cray-x*'
* for cray-prgenv-cray compilations, stopped throwing -hipa2 by default
Platform-specific bug fixes
---------------------------
* fixed a stack underflow problem with 'muxed' tasking causing segfaults
* fixed a race in stack management for 'muxed' tasking
Portability Improvements
------------------------
* eliminated warnings related to [_BSD|_SVID]_SOURCE being deprecated
* improved portability of building the SysCTypes.chpl for Fedora 22
* removed symmetric address assumptions from error-handling code in the runtime
* fixed a number of I/O portability errors on cygwin
* fixed tcmalloc when compiled with clang 3.6 and used from C++
* fixed I/O for 32-bit Ubuntu 14.04
* added support for building GASNet with segment=fast on OS X
* fixed hwloc's cairo detection for certain OS X installations
* eliminated some Xcode-specific warnings
Third-Party Software Changes
----------------------------
* added 'fltk' to the third-party directory for use by 'chplvis'
* enabled the use of GMP with the LLVM back-end
* made LLVM build in non-debug mode and without asserts by default
* improved cross-compilation of third-party packages for 'cray-x*' platforms
* we're now storing RE2 in an unpacked form due to all of our local changes
* fixed a valgrind issue in RE2
Launcher-specific Changes
-------------------------
* improved 'slurm' launcher's handling of non-zero exit() codes
* changed how the 'amudprun' launcher deals with quoted arguments
Runtime Library Changes
-----------------------
* added support for out-of-segment put()/get() calls
* changed I/O to allocate buffer space out of the Chapel heap
Testing System
--------------
* rewrote 'start_test' and 'computePerfStats' in python
* replaced --suppress feature with .suppressif files
* added ability to write chpldoc tests using the .doc.chpl extension
* updated testing system to support testing of 'chpl-ipe'
* made the parallel testing system print an estimated end time
* added support for a -valgrindexe flag to 'paratest.server'
* made 'start_test' work when it's located outside of $CHPL_HOME/util
* added the ability to have multi-line COMPOPTS file
* improved support for #defines with quotes for C testing
* made C testing system more accepting of C compilers that print filenames
* specialized testing system to recognize some common launcher errors
* improved ability to use chpl_launchcmd.py from NFS-mounted Lustre filesystems
* extended timeout mechanism to work under Cygwin
Makefile Changes
----------------
* rewrote 'make check' to remove reliance on start_test/tcsh/python
Performance Testing/Graphing System
-----------------------------------
* added a 'screenshot' capability for performance graphs
* added the ability to annotate cray-xc performance graphs
* retired the old gnuplot-based graphing system
* reduced graphing system's reliance on CHPL_HOME being set
* improved graphing system's stability when there is no ANNOTATIONS.yaml file
Developer-oriented changes: Process Improvements
------------------------------------------------
* began using Jira for issue tracking
Developer-oriented changes: Documentation Improvements
------------------------------------------------------
* added notes about testing nightly scripts to util/cron/README
Developer-oriented changes: Compiler Flags
------------------------------------------
* added a --break-on-resolve-id flag for stopping when calling a function
Developer-oriented changes: Module improvements
-----------------------------------------------
* cleaned up how filename/line# information is attached to network atomics
* added support for casting directly to c_strings
* started using specific I/O read/write functions for int/real/imag types
* cleaned up handling of bool values in IO.chpl
* made initOnLocales() a standalone parallel iterator and added 'chpl_' prefix
Developer-oriented changes: Makefile improvements
-------------------------------------------------
* added a top-level Makefile rule for building the parser
Developer-oriented changes: Compiler improvements/changes
---------------------------------------------------------
* rewrote the compiler passes that widen references as necessary
* rewrote major portions of the scope resolution pass
* reduced reliance on homegrown ADTs with their STL equivalents
* improved the sharing of flags between 'chpl' and 'chpldoc'
* turned off sugaring of type names in --devel mode
* internal improvements to how tuples are handled
* removed unused flag FLAG_NO_USE_CHAPELSTANDARD
* renamed FLAG_PRIVATE to FLAG_LOCALE_PRIVATE for clarity
* retired the "auto destroy fn" pragma
* added tracking of zippered loops throughout compilation
* ensured the lexer returns a heap-allocated const char* for each literal
Developer-oriented changes: Runtime improvements
------------------------------------------------
* added support for task callbacks in the runtime
* eliminated reliance on __always_inline
* added chpl_mem_goodAllocSize() to runtime to support minimizing wasted memory
* added the ability to flag certain memory types to avoid tracking them
* added a capability to generate a header file #defining CHPL_* variables
* turned off remote caching for tasking layers where migration can occur
Developer-oriented changes: Third-party improvements
----------------------------------------------------
* cleaned up local modifications to Qthreads for contribution back to master
* updated third-party GMP/RE2 READMEs to refer to online module documentation
==============
version 1.11.0
==============
Fourteenth public release of Chapel, April 2, 2015
Highlights
----------
* revamped 'chpldoc' and used it to create web docs for all standard modules
(see http://chapel.cray.com/docs/latest/)
* added a new FileSystem standard module supporting operations on files/dirs
(see http://chapel.cray.com/docs/latest/modules/standard/FileSystem.html)
* added a new FFTW standard module supporting key FFTW routines
(see http://chapel.cray.com/docs/latest/modules/standard/FFTW.html)
* added task intents to forall loops, plus new intents such as 'in' and 'reduce'
(see 'Semantic Changes' and 'New Features' sections below)
* added support for standalone parallel iterators, used by non-zippered foralls
(see examples/primers/parIters.chpl)
* added support for vectorization of data parallel loops and operations
(see '--vectorize' flag in 'man chpl')
* optimized away communication code for module-scope variables and local arrays
(see release note slides at http://chapel.cray.com/download.html#releaseNotes)
* added an early prototype interactive/interpreted mode for writing Chapel code
(see doc/technotes/README.chpl-ipe.rst for more details)
* initial support for Python->Chapel interoperability via PyChapel
(see http://pychapel.readthedocs.org/ for more details)
* made 'ugni'/'muxed' the default comm/tasking choices for cray-x* module users
(see doc/platforms/README.cray and doc/README.chplenv)
* added a new 'chpltags' utility to generate emacs/vim tags for Chapel code
(see 'util/chpltags --help' and 'util/README')
* numerous other improvements for better performance and cleaner generated code
(see 'Performance Improvements' section below)
* improved portability to NetBSD and additional flavors of Linux
(see 'Portability Improvements' section below)
* upgraded the bundled versions of GASNet, hwloc, llvm, and dygraphs
(see 'Third-Party Software Changes' section below)
* numerous bug fixes
(see 'Bug Fixes' section below)
Environment/Configuration Changes
---------------------------------
* made the setchplenv.* scripts prepend to PATH and MANPATH rather than append
* made the "quickstart" scripts set CHPL_COMM to 'none' and not set CHPL_MEM
* improved the logic for auto-detecting when CHPL_ATOMICS should be 'intrinsics'
* added auto-detection of CHPL_*_PLATFORM for 'cray-xc'/'cray-xe' systems
* added support for building runtime/third-party with the bundled clang version
(see references to 'clang-included' in README.chplenv)
* split the 'cygwin' CHPL_*_PLATFORM value into 'cygwin32' and 'cygwin64'
* added new 'netbsd32' and 'netbsd64' values for CHPL_*_PLATFORM
* changed CHPL_COMM/TASKS to default to ugni/muxed when using the cray-x* module
(see doc/README.chplenv, doc/platforms/README.cray, and/or doc/README.tasks)
* made CHPL_TASKS default to 'fifo' for 'cray-prgenv-cray' CHPL_TARGET_COMPILER
Packaging Changes
-----------------
* updated Makefiles to support building Chapel in parallel via 'make -j'
* avoid rebuilding gmp and re2 speculatively when previous builds have failed
Tool Changes
------------
* added an early prototype interactive/interpreted mode for writing Chapel code
(see doc/technotes/README.chpl-ipe.rst for more details)
* revamped 'chpldoc' to create HTML files via Sphinx for documenting Chapel code
(see doc/technotes/README.chpldoc.rst and 'man chpldoc' for more details)
* added a new 'chpltags' utility to generate emacs/vim tags for Chapel code
(see 'util/chpltags --help' and 'util/README' for more information)
Syntactic/Naming Changes
------------------------
* removed the placeholder keyword 'refvar' in favor of the new keyword 'ref'
* removed support for the use of 'var' as a return intent (use 'ref' instead)
Semantic Changes / Changes to Chapel Language
---------------------------------------------
* added support for task intent clauses and semantics to forall loops
(see 'Data Parallelism: Forall Intents' in the language specification)
* added initial support for 'reduce' intents on forall loops
(see doc/technotes/README.reduceIntents)
* removed the 'type select x' syntax in favor of simply using 'select x.type'
* made read()s of sync/single variables result in a compiler error
New Features
------------
* added "blank", 'const', 'in', 'const in' and 'const ref' task intents
(see 'Task Parallelism: Task Intents' in the language specification)
* added "standalone parallel iterators", used by non-zippered forall loops
(see examples/primers/parIters.chpl)
* added support for aliasing of domains via the '=>' operator
New Interoperability Features
-----------------------------
* inital support for Python->Chapel interoperability via PyChapel
(see http://pychapel.readthedocs.org/ for more details)
* added a prototype capability to embed external dependences to source via 'use'
(e.g., use "foo.h", "-lfoo"; is like adding these to the 'chpl' command-line)
* added support for passing multidimensional arrays to external routines
(see doc/technotes/README.extern)
* added munging of all user identifiers by default to avoid naming conflicts
(see --[no-]munge-user-idents in 'man chpl' and doc/README.executing)
* added an error when passing Chapel strings to C routines; use c_string instead
Standard Library/Modules
------------------------
* added a new module, FileSystem, containing numerous file system operations
(see http://chapel.cray.com/docs/latest/modules/standard/FileSystem.html)
* added support for key 64-bit FFTW routines (single- and multi-threaded)
(see http://chapel.cray.com/docs/latest/modules/standard/FFTW.html and
http://chapel.cray.com/docs/latest/modules/standard/FFTW_MT.html)
* added parity() and rotate() operations to the BitOps module
(see http://chapel.cray.com/docs/latest/modules/standard/BitOps.html)
* added parallel versions of the glob(), walkdirs(), and findfiles() iterators
(see http://chapel.cray.com/docs/latest/modules/standard/FileSystem.html)
* started a new module, Path, supporting realPath(), curDir, parentDir, pathSep
(see http://chapel.cray.com/docs/latest/modules/standard/Path.html)
* added a new module, Assert, defining a simple assertion capability
(see http://chapel.cray.com/docs/latest/modules/standard/Assert.html)
* added support for C types c_ptrdiff, c_uintptr, and c_intptr to SysCTypes.chpl
(see http://chapel.cray.com/docs/latest/modules/standard/gen/doc/SysCTypes.html)
* changed cwd() and chdir() from standalone functions to locale methods
(see http://chapel.cray.com/docs/latest/modules/standard/FileSystem.html)
* made mkdir(parents=true) behave more like 'mkdir -p'
* added a .safeCast() method to integer types to value-check downcasts
(see http://chapel.cray.com/docs/latest/modules/standard/Types.html)
* changed min(t) and max(t) to return 'param' values for integral types 't'
(see http://chapel.cray.com/docs/latest/modules/standard/Types.html)
* parameterized RandomStream by an 'eltType' and updated its methods accordingly
(see http://chapel.cray.com/docs/latest/modules/standard/Random.html)
* removed the parSafe arguments from RandomStream's methods in the Random module
(see http://chapel.cray.com/docs/latest/modules/standard/Random.html)
* added support for escaping pattern-style format strings using %{}
(e.g., "writef("#%{##}", 10)" => "#10")
* added support for readf()/writef() of octal values
* changed 'BigInt' methods to use Chapel types rather than C types
* folded the prototypical 'Filerator' module into the new 'FileSystem' module
* retired the 'Containers' module in favor of vector operations on arrays
(see examples/primers/arrayVectorOps.chpl)
Performance Improvements
------------------------
* added support for vectorization of data parallel loops and operations
(see '--vectorize' flag in 'man chpl')
* optimized away the creation of anonymous ranges in loops
(e.g., 'for i in 1..10' no longer creates an anonymous range object for 1..10)
* optimized away communication code for module-scope variables and local arrays
* optimized iterations over ranges in data parallel constructs like 'forall'
* added standalone parallel iterators for ranges and default domain maps
* extended loop-invariant code motion to include certain global variables
* added an 'assertNoSlicing' config that can be used to optimize array accesses
(see $CHPL_HOME/PERFORMANCE)
* avoided creating new singleton tasks within serial execution contexts
Memory Improvements
-------------------
* reduced memory leaks due to compilerWarning()s and runtime string arguments
* distinguished between "owned" and "unowned" c_strings in implementation
* improved the handling of strings across multiple locales
Launcher-specific Changes
-------------------------
* in the 'pbs-aprun' launcher, removed reliance on the mpp* options
* added a --nodelist option to the 'slurm-srun' launcher
* in the 'slurm-srun' launcher, stopped using expect scripts
Platform-specific Changes
-------------------------
* fixed an issue in which Qthreads would not handle sleep() correctly for darwin
* added a micro-sleep when yielding threads on Cygwin to improve throughput
* changed CHPL_COMM/TASKS to default to ugni/muxed when using the cray-x* module
(see doc/README.chplenv, doc/platforms/README.cray, and/or doc/README.tasks)
* enabled 'ugni' tasking to be usable with 'qthreads' as well as 'muxed'
* reduced default heap size used for CHPL_COMM='ugni' to 2/3 free node memory
(see doc/platforms/README.cray)
* changed 'muxed' tasking to use # of threads equal to the # of CPUs by default
(see doc/platforms/README.cray)
* disabled optimizations by default for cray-prgenv-cray compilations
* split the 'cygwin' platform value into 'cygwin32' and 'cygwin64'
* split the 'netbsd' platform value into 'netbsd32' and 'netbsd64'
* made CHPL_TASKS default to 'fifo' for 'cray-prgenv-cray' CHPL_TARGET_COMPILER
Portability Improvements
------------------------
* fixed several portability issues on NetBSD platforms
* fixed the use of the --llvm flag on Mac OS X ('darwin') platforms
* fixed some portability issues with the use of hwloc and -lnuma for 'qthreads'
* fixed some static/dynamic linking issues with certain platforms/compilers
* fixed a gmp build issue for 32-bit platforms
Third-Party Software Changes
----------------------------
* updated the bundled version of GASNet to 1.24.0
* updated the bundled version of hwloc to 1.10.1
* updated the bundled version of llvm to 3.6.0
* upgraded the bundled version of dygraphs to version 1.1.0
* added support for dynamically installing Python packages required by 'chpldoc'
(see 'chpldov-venv' in third-party/README)
* rearchitected scripting framework for third-party dependences
* made the re2 build do a better job of propagating errors back to the Makefiles
* changed Qthreads to avoid using guard pages when mprotect() won't work
* fixed a bug in limiting the maximum size of Qthreads memory pools
Documentation
-------------
* added web-based docs for all standard modules and removed from spec/READMEs
(see http://chapel.cray.com/docs/latest/)
* made some minor improvements to the Quick Reference document
* added documentation for class and record destructors to the spec
* removed an outdated distinction between function calls using () vs. [] in spec
* clarified that integer literals may be 'int' or 'uint' in the spec
* added a note for 'zsh' users to the top-level README
* added a note to CONTRIBUTORS noting mis-attributed code authors within GitHub
* improved the documentation of the slurm* launchers
(see doc/README.launcher, doc/platforms/README.cray)
* added a note about ugni memory registration and concurrency with slurm
(see doc/platforms/README.cray)
* added a note about a longstanding undocumented feature to squash ref counting
(see $CHPL_HOME/PERFORMANCE)
Example Codes
-------------
* added a new primer example demonstrating use of the FFTW module
(see examples/primers/FFTWlib.chpl)
* added standalone parallel iterators to the leader-follower primer and renamed
(see examples/primers/parIters.chpl)
* updated and renamed the chpldoc primer example to reflect chpldoc's changes
(see examples/primers/chpldoc.doc.chpl)
* updated the random numbers primer to reflect changes to the interface
(see examples/primers/randomNumbers.chpl)
* fixed a bug in our lulesh implementation when using the 3D representation
* updated miniMD's Stencil distribution to track changes in BlockDist
* changed miniMD to work around a bug in passing remote records by blank intent
* updated the HPCC FFT example to use new BitOps
* updated SSCA2 to reflect new intent semantics for forall-loops
* updated the regexdna shootout to accept extra arguments as used by framework
* made stream and ra save their problem sizes when performance testing
* replaced the use of format() in example codes with writef()
Compiler Flags (see 'man chpl' for details)
-------------------------------------------
* added --[no-]use-noinit to permit 'noinit' to be ignored
* added support for setting --fast via environment variable CHPL_FAST
* added --[no-]ignore-classes to disable local class optimizations
* added --[no-]vectorize to enable/disable generation of vectorization hints
* added --[no-]cast-checks to enable/disable value checking in safeCast methods
* added --[no-]munge-user-idents to control munging of generated identifiers
* removed all documentation-related options; use 'chpldoc' instead
* added a flag --[no-]task-tracking to enable/disable runtime task tracking
New Semantic Checks (for old semantics)
---------------------------------------
* Improved 'const' checking for array/tuple fields and array/domain aliases
Error Message Improvements
--------------------------
* added an error when compiling for a configuration whose runtime is not built
* improved error messages for several range overflow conditions
Bug Fixes
---------
* fixed a bug with dynamically dispatched iterators
* fixed a bug with parallel iteration over non-naturally-aligned ranges
* fixed a bug in which record variables did not call user-defined constructors
* fixed a bug in which arrays of associative domains could cause a segfault
* fixed a bug in which user identifiers could easily conflict with C identifiers
* fixed a bug with formatted writes of integers using "###."
* fixed an infinite loop in binary reads of strings when EOF is reached
* fixed a bug preventing sparse domains from having 'uint' indices
* fixed a bug when casting param 'int(64)' and 'uint(?)' to 'c_string'
* fixed a bug in which secondary parentheses-less methods did not work well
* fixed a buffer overrun issue in certain I/O routines
* fixed a bug in which defining multiple destructors caused a segfault
* fixed some bugs in the standard Buffers module
* fixed a bug in which filenames generated by --cpp-lines would get corrupted
* fixed a bug in --cache-remote for 32-bit platforms
* fixed a bug with loop invariant code motion in the context of nested functions
* fixed a crash when using multiple formal type queries for primitives types
* fixed a bug in which iterators yielding locale types caused an internal error
* fixed a bug in which --no-remove-copy-calls would break certain extern records
* fixed a bug in the parser causing issues with &&= and ||= for --baseline
* fixed a bug in which developer pragmas were only attached to the first symbol
Platform-specific bug fixes
---------------------------
* fixed a bug in which I/O errors would print "unknown" for paths for 'cygwin'
* fixed a warning in our calls to glob() when compiling with 'prgenv-cray'
* fixed an issue in which generated identifiers could be too long for 'pgi'
* fixed a bug in which 'gmp' would not build cleanly for 32-bit Ubuntu systems
* fixed a bug in atomic operations on 'real' types for CHPL_COMM='ugni'
Runtime Library Changes
-----------------------
* enabled 'ugni' tasking to be usable with 'qthreads' as well as 'muxed'
* changed Qthreads to yield after uncontested sync var locks to avoid starvation
Compiler Performance
--------------------
* accelerated compilation times by disabling the task table by default
(see '--[no-]task-tracking' on the 'chpl' man page and doc/README.executing)
Testing System
--------------
* added support for specifying 'skipif' files as executable scripts
* added a mode in which only futures with .skipif files are tested
* check for .skipif conditions before wasting any effort on a test
* switched to a consistent and simpler naming scheme for test configurations
* added timing measurements to the log for various aspects of testing
* revamped emails sent by testing scripts for maintainability and spam avoidance
* made the test system less sensitive to line/versions #s in .bad comparisons
* added a --test-root flag, improving start_test when run from outside CHPL_HOME
* fixed a bug in which '-nl' was passed to C tests for multilocale testing
* added support for jUnit XML-style report generation to start_test and paratest
* made paratest.server's compopts/execopts accumulate rather than overwrite
* added CHPL_TEST_UNIQUIFY_EXE to support simultaneous test runs on a directory
* added the ability to set the default testing timeout via CHPL_TEST_TIMEOUT
* added support for CHPL_TEST_NUM_TRIALS to be set by a user's environment
* squashed duplicate error messages due to sub_test failures
* fixed a bug with stdin redirects for tests with multiple .execopts
* made start_test smarter about stdin and launchers for multilocale testing
* improved the testing system's handling of timeouts when launchers are used
* added validation for CHPL_NIGHTLY_LOGDIR in nightly testing
* fixed a bug for tests with multiple execopts settings that timed out
* permitted suppression files to contain blank lines
* fix bug in which suppression-based issues only appeared in the test summary
* fixed a bad interaction between env. vars. set in sub_test vs. execenv files
* made sub_test ignore OS errors during unlinking to quiet false negatives
Performance Testing/Graphing System
-----------------------------------
* allow scrolling of the list of graphs independently from graphs themselves
* embed more information in the URL of performance graphs for sharing purposes
* improved the portability of URLs from the performance graphing system
* added support for 'today' as a date in the perf graph system's URL encodings
* accelerated graphs by moving sorting of graphs' legends into genGraphs script
* track top processes between performance runs to look for causes of noise
* improved support for comparing multiple performance testing configurations
* started logging the sha values for performance runs, for historical reference
* changed performance graphs to use json rather than csv
* automatically strip punctuation characters from the end of graph keys
Developer-oriented changes: Utility Changes
-------------------------------------------
* added a new compiler gdb command 'locid' which prints an AST's source location
* made build_configs.py support parallel execution
Developer-oriented changes: Compiler Flags
------------------------------------------
* added --report-order-independent-loops to note loops with vectorization hints
* added --remove-unreachable-blocks to attempt early removal of dead code
* fixed a code pointer in the --help message for --log
Developer-oriented changes: Module improvements
-----------------------------------------------
* added a pragma for asserting that a class field is local to the object
* moved routines in support of iterators to a new module ChapelIteratorSupport
* split _build_range() into several routines with better names
* refactored overloads of range operator definitions
* changed Filerator routines to use new isLink(), isDir(), and isFile() routines
* removed requirement to add 'no ChapelStandard' pragma to internal modules
Developer-oriented changes: Makefile improvements
-------------------------------------------------
* added a "WARNINGS" macro that can be used to turn on C-level warnings
* moved check for standard C headers into the post-commit smoke test
* simplified and regularized third-party Makefiles
Developer-oriented changes: Compiler improvements/changes
---------------------------------------------------------
* changed the parser to a "pure push" style of parser
* changed the compiler to require bison 2.5 (or later)
* dramatically reworked representation and manipulation of loop AST nodes
* made more AST members private and increased the use of query methods
* added a new, prototype AST pretty-printer for Chapel-oriented output
* made improvements to list_view()
* made flags on a symbol print in a deterministic order
* extended DeadCodeElimination to reclaim degenerate C for loops
* made 'narrowWideReferences' its own compiler pass and refactor it
* moved the 'docs' pass earlier in compilation
* reorder localCopyPropagation to avoid a ref-before-def bug
* improved verification of expressions to check correctness of AList links
* fixed a bug in which failed chpl__tryToken resolutions could roll back too far
* removed flags: FLAG_LABEL_BREAK, FLAG_LABEL_CONTINUE, FLAG_USER_NAMED
* distinguished FLAG_WIDE from FLAG_WIDE_REF
* deprecated the use of the MOD_MAIN tag
* simplified code related to calling user-defined constructors vs. _defaultOf
* converted the collapsing of nested BlockStmts to use a visitor
* added a predicate to determine if an expression is a "statement expression"
* converted some uses of C arrays to std::vector in compiler
* added binary operators to the BitVec implementation
* replaced the basic block macros with private static functions
* fixed a bug in basic block analysis
* moved the handling of boolean short-circuiting from 'parse' to 'normalize'
* renamed 'by' operators in the compiler's IR to avoid naming conflicts
* refactored fix_def_expr() in the normalize pass
* refactored constant folding vs. dead code elimination for CondStmts
* fixed several code issues identified by coverity scan
* many other code refactorings and improvements
Developer-oriented changes: Runtime improvements
------------------------------------------------
* simplified interactions between locale models and the runtime
* improved the non-blocking communication interface
* added support for the main process to run Chapel tasks
* guarded against some src==dst calls to memcpy()
* for optimized builds of the runtime, set NDEBUG to turn off assertions
* fixed several code issues identified by coverity scan
Developer-oriented changes: Generated Code improvements
-------------------------------------------------------
* improved the spacing when printing IDs via --gen-ids
==============
version 1.10.0
==============
Thirteenth public release of Chapel, October 2, 2014
Highlights
----------
* changed Chapel's license and contributor agreement to Apache 2.0
(see 'Licensing Changes' section below)
* made Qthreads the default tasking layer for Chapel on most platforms
(see doc/README.chplenv and doc/README.tasks for details)
* added initial support for Intel Xeon Phi Knights Corner (KNC) processors
(see doc/platforms/README.knc)
* added new standard modules for bit operations, prefetch, file/directory utils
(see 'Standard Modules' section below)
* extended auxiliary file system support for HDFS to include Lustre and cURL
(see doc/README.auxIO for details)
* added support for set-based operations on associative domains and arrays
(see doc/technotes/README.sets and examples/primers/associative.chpl)
* added draft support for vector methods on 1D arrays with a personal domain
(see examples/primers/arrayVectorOps.chpl)
* added the ability to query arrays for the subdomain(s) that the locale owns
(see doc/technotes/README.subquery and examples/primers/distributions.chpl)
* added the ability to pass contiguous Chapel arrays to extern procedures
(see doc/technotes/README.extern)
* performance boosts due to Qthreads tasking, improved LICM, less communication
(see 'Performance Improvements' below)
* several generated code cleanups including C for loops and fewer ref temps
(see 'Generated Code Cleanups' below)
* significantly improved const-ness checking for fields, indices, domains/arrays
* fixed the semantics for passing sync/single variables to generic arguments
* improved support for, and orthogonality of, constructor calls
* added a compiler flag to support specializing for the target architecture
(see descriptions of CHPL_TARGET_ARCH and --[no-]specialize below)
* added symbolic CHPL_RT_NUM_THREADS_PER_LOCALE values to support common cases
(see doc/README.tasks for details)
* added an --about flag to Chapel executables to print compilation information
* new primer examples for associative domains/arrays, vector ops, random numbers
(see 'Example Codes' below)
* two new shootout benchmarks and many improvements to the existing ones
(see 'Example Codes' below)
* split setchplenv.* source scripts into "quick start" and "production" modes
(see $CHPL_HOME/README)
* by default, attempt to build and enable RE2 and GMP when possible
(see doc/README.chplenv)
* updated versions of hwloc, tcmalloc, and gasnet third-party packages
(see 'Third-Party Software Changes' below)
* numerous bug fixes
(see 'Bug Fixes' below)
* many test system improvements including C-based testing and external timers
(see 'Testing Sytem' and 'Performance Testing/Graphing System' below)
* many developer process improvements such as GitHub, Travis, Coverity, Jenkins
(see 'Developer-oriented Changes: Process Changes' below)
* many other developer-oriented improvements and refactorings
(see other 'Developer-oriented Changes: ...' sections below)
Licensing Changes
-----------------
* changed Chapel's license from BSD to Apache 2.0
(see $CHPL_HOME/LICENSE.chapel for details)
* changed Chapel's contributor agreement from a Cray agreement to Apache 2.0
(see http://chapel.cray.com/developers.html for details)
Packaging Changes
-----------------
* split the util/setchplenv.* scripts into quick-start and "production" versions
(see $CHPL_HOME/README and util/README for more information)
* for non-quickstart users, we now attempt to enable RE2 and GMP by default
(see doc/README.chplenv for details)
* removed the util/update-sources script which had fallen out-of-date
Environment Changes
-------------------
* changed the default value of CHPL_TASKS to 'qthreads' for most platforms
(see doc/README.chplenv and doc/README.tasks for details)
* added CHPL_TARGET_ARCH to describe the target processor architecture
(see doc/README.chplenv for details)
* added CHPL_AUX* environment variables for accessing HDFS, Lustre, and/or cURL
(see doc/technotes/README.auxIO)
* added symbolic physical/logical values for CHPL_RT_NUM_THREADS_PER_LOCALE
(see doc/README.tasks for details)
* generalized CHPL_RT_MAX_HEAP_SIZE to control GASNet's segment size
(see doc/README.executing for more information)
* generalized CHPL_RT_CALL_STACK_SIZE to control Qthread stack sizes
(see doc/README.executing for more information)
* renamed the CHPL_MEM setting previously called 'default' to 'cstdlib'
Portability Improvements
------------------------
* added initial support for Intel Xeon Phi Knights Corner (KNC) processors
(see doc/platforms/README.knc)
* fixed a bug in which newer versions of Cygwin weren't properly detected
Syntactic/Naming Changes
------------------------
* changed the syntax for task intents from 'ref(ident)' to 'with (ref ident)'
(see the 'Task Parallelism' chapter of the language specification for details)
* deprecated 'var functions' in favor of returning by 'ref' intent
(see the 'Procedures' chapter of the language specification for details)
* renamed the 'default' setting for CHPL_MEM to 'cstdlib'
(see doc/README.chplenv for details)
Semantic Changes / Changes to Chapel Language
---------------------------------------------
* made passing syncs/singles to generic arguments pass them by 'ref'
(previously, such calls would unwrap the sync/single, passing the value in)
* redefined op= on associative domains in terms of set operations
(see doc/technotes/README.sets for more information)
* made loops over ranges that rely on overflow undefined
(e.g., 'for i in 1..max(int) do ...' is not well-defined)
* make a more explicit distinction between the 'string' and 'c_string' types
(see doc/technotes/README.extern for more information on 'c_string')
* added support for the logical negation of integral types
(e.g., 'var x = 3; if (!x) then ...' is now legal Chapel code)
* removed support for interpreting {D} as D for domain D
(given 'const D: domain(...) = ...;', '{D}' is not a domain of domains)
New Features
------------
* added support for Lustre and cURL file systems
(see doc/technotes/README.auxIO and README.curl for details)
* added support for standard set operations on associative domains and arrays
(see doc/technotes/README.sets and examples/primers/associative.chpl)
* added support for extending an associative array's personal domain via stores
(see examples/primers/associative.chpl)
* added draft support for vector methods on 1D arrays with a personal domain
(see examples/primers/arrayVectorOps.chpl)
* added the ability to query arrays for the subdomain(s) that the locale owns
(see doc/technotes/README.subquery and examples/primers/distributions.chpl)
* made the compiler call user-defined default constructors when defined
* added the ability to call constructors through type aliases
(e.g., 'class C { ... } type t = C; var myT = new t();' now works)
* added support for numerous type-oriented queries for expressions
(see doc/technotes/README.typeQueries)
* added octal literals
(e.g., 0o777)
* added support for 'noinit' on record and class variables
(see the 'Variables' chapter of the language specification)
* added experimental support for user-defined default values for record types
(e.g., 'proc _defaultOf(type t) where t:R { var r: t; r = ...; return r; })
* added locale.maxTaskPar to query the # of parallel tasks a locale can support
(see the 'Locales' chapter of the language specification)
* added initial support for 'ref' variables using a placeholder 'refvar' syntax
(e.g., 'var x = 3; refvar y = x; x = 5; assert(y == 5);' will not fail)
Changes to the Implementation
-----------------------------
* improved the current support for HDFS file systems
(see doc/technotes/README.auxIO and README.hdfs for more information)
* made 'dataParTasksPerLocale' default to 'locale.maxTaskPar'
(see the 'Data Parallelism' chapter of the language specification)
New Interoperability Features
-----------------------------
* added the ability to pass contiguous Chapel arrays to extern procedures
(see README.extern)
* extern C procedures should now take 'c_string' arguments rather than 'string'
* changed the return type of is_c_nil from c_int to bool
Standard Modules
----------------
* added a new standard module supporting some initial bitwise operations
(see modules/standard/BitOps.chpl)
* added a new standard module supporting a prefetch() operation
(see modules/standard/Prefetch.chpl)
* added some initial file/directory utility routines (more planned for 1.11)
(e.g., remove(), rename(), cwd(), chdir(), mkdir(), chown())
* added draft support for glob() and walking directory trees
(see modules/standard/Filerator.chpl -- feedback desired)
* added readstring()/readline() methods that read bytes into strings/arrays
(see modules/standard/IO.chpl)
* added an experimental sorted() iterator for sorting arrays or other iterables
(see modules/standard/Sort.chpl)
* added the ability to have the Sort.chpl module routines sort in reverse
* implemented new module NewString defining 'string_rec'
(prototype to replace 'string' in version 1.11)
* added a printMemLeaks() routine for printing out a memory leaks table
(see modules/standard/Memory.chpl)
* improved Random.chpl's SeedGenerator.currentTime to avoid duplicate seeds
* rewrote the AdvancedIters module to use 'atomic' rather than 'sync' vars
* removed the Profiling-related modules and source code
Documentation
-------------
* added doc/platforms/README.knc to describe using Chapel for KNC
* added doc/technotes/README.auxIO and .curl to describe new file system support
* added doc/technotes/README.sets to describe new associative domain set ops
* added doc/technotes/README.fileUtil to describe current file utility routines
* added doc/technotes/README.subquery to describe array subdomain queries
* added a description of CHPL_RT_MAX_HEAP_SIZE/GASNET_MAX_SEGSIZE to README.cray
* improved the specification of procedure arguments and returns
* added the proposed support for forall intents to the language specification
* fixed a spec code example that failed to use task intents as needed
* many updates, clarifications, and improvements to the language specification
* many updates and improvements to the READMEs in general
Example Codes
-------------
* added a new primer for associative domains/arrays and set operations on them
(see examples/primers/associative.chpl)
* added a new primer for vector operations on 1D arrays
(see examples/primers/arrayVectorOps.chpl)
* added a new primer for random number generation
(see examples/primers/randomNumbers.chpl)
* added two new shootout benchmarks: meteor-fast, regexdna
(see examples/benchmarks/shootout/meteor-fast.chpl and regexdna.chpl)
* replaced the fannkuch-redux benchmark with a parallel version
(see examples/benchmarks/shootout/fannkuch-redux.chpl)
* updated the mandelbrot benchmark to use a dynamic iterator