| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
The objective of this commit is to introduce a short notation for
bringing in scope the bigarray index operators and only them. For
that purpose, the bigarray index operators are regrouped in a single
submodule. This submodule is also included inside the global bigarray
module to preserve compatibility and ease of use of the bigarray
module.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commits modify the Bigarray syntax extension in order to facilitate the use of custom .{} operators. The compatibility with the existing Bigarray syntax has been preserved as much as possible. However, this commit will break code which use the Bigarray .{}
syntax without opening the Bigarray module first!
Like the previous commit, this commit modifies the parser to desugar bigarray1.{index} to ( .{} ) bigarray1 index. Following the bigarray syntax, the index operator used
in the desugaring changes if the index is a n-tuple:
1-tuple => .{}
2-tuple => .{,}
3-tuple => .{,,}
4 and more tuples => .{,..,}
The bigarray modules has been modified to use this new index operators. Note that this means that these index operators are not anymore accessible without opening the bigarray module.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit modifies the parser to use the newly defined .() and .[] operators. It also moves the definition of the standard .() and .[] operator for String/Bytes and Array to the pervasives module.
Before this commit, expressions of the form array.(index) and string.(index) where desugared to Array.get[_unsafe] array index and Strinf.get[_unsafe] string index. The unsafe or unsafe version were chosen depending on the presence of the "-unsafe" compiler option. Such expression are now desugared to ( .() ) array index and ( .[] ) string index respectively. The same desugar operation is applied to array.(index) <- value which becomes ( .()<- ) array index value.
In order to keep the standard semantic for the string and array index operations, these new index operators are defined in the pervasives module using new compiler primitives, e.g.
let .() = "%array_opt_get".
These new primitives are then mapped to safe or unsafe version depending on the
the "-unsafe" compiler option. Consequently, these modifications should have no impact on existing code.
With these modifications, defining custom .() and .[] operators should be easier, at the cost of losing access to the standard index operator for either array or string.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
travis.yml is kept from trunk
Conflicts:
.depend
Changes
Makefile
VERSION
boot/ocamlc
boot/ocamldep
boot/ocamllex
parsing/parser.mly
parsing/pprintast.ml
stdlib/hashtbl.ml
testsuite/tests/unwind/Makefile
tools/check-typo
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This bizarre patch results in a full test-suite pass for Visual Studio
.NET 2002 & 2003. Without it, the following code segfaults (resulting in
6 failing tests):
```ocaml
#load "unix.cma";;
let (ifd, _) = Unix.pipe ();;
Unix.in_channel_of_descr ifd;;
```
|
| |
| |
| |
| |
| |
| | |
Older Microsoft C compilers can't generate code for casting unsigned
__int64 to double and the __pragma directive is not available for
suppressing warnings.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Support was added for variadic macros in the RTM version of Visual Studio
2005 (CL Version 14), but there are variants of the version 14 compiler
included in SDKs released before Visual Studio 2005 itself which do not
support them. Fix the non-DEBUG version of win32unix to compile correctly
and not display a warning for DEBUG_PRINT calls in
`otherlibs/win32unix/select.c`.
|
| | |
|
|/ |
|
|
|
|
| |
Remains to be done: remove all headers in testsuite/tests.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Unix.symlink requires CreateSymbolicLink which prevents programs from
running on Windows XP. Dynamically link the function instead.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
The mingw64 headers create an inconsistency between the MSVC and MinGW
ports - mingw64 automatically defines _USE_32BIT_TIME_T on 32-bit
Windows, where the Microsoft CRT docs state that should be a user
define. The effect is that the mingw64 32-bit port suffers from the year
2038 bug, where the MSVC 32-bit port does not. Given that OCaml uses a
double for the time fields anyway and OCaml requires sufficiently modern
compilers to be able to rely on a working _stat64 (64-bit time_t and
64-bit st_size), switch from the *i64 to the *64 variants.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
Change ``byte_size'' to ``size_in_bytes``, change ``kind_byte_size``
to ``kind_size_in_bytes``.
Add detailed comment indicating size functions do not consider header
of OCaml value.
|
| |
|
|\
| |
| | |
GPR#22: Add Ephemerons to OCaml
|
| | |
|
|/ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Extend the previous patch allowing make -f Makefile.nt flexdll
install-flexdll not to require the install-flexdll stage.
OCAML_FLEXLINK is utilised as required to allow compilation of the entire
system using an in-tree compiled flexlink. The build process simply
required the flexdll target to appear before world.
opt.opt compiles a native code version of flexlink.exe as flexlink.opt.
install always installs flexlink.exe if it was compiled along with any
required .manifest files. It also installs the appropriate .o/.obj files
to $(INSTALL_LIBDIR).
At present, the bootstrapping is not extended to the Cygwin ports.
|
| |
|
|\ |
|
| |
| |
| |
| |
| | |
Fix the documentation layout by attaching the documentation comments to
their respective type and not the last constructor of these types.
|
| | |
|
|/ |
|