-
-
Notifications
You must be signed in to change notification settings - Fork 5.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Manual Conversion #18588
Merged
MichaelHatherly
merged 95 commits into
JuliaLang:master
from
MichaelHatherly:mh/markdown-docs
Dec 7, 2016
Merged
Manual Conversion #18588
Changes from 1 commit
Commits
Show all changes
95 commits
Select commit
Hold shift + click to select a range
a1e14c4
Setup new directory structure in doc/
MichaelHatherly 20336ae
Update README in the doc/ directory
MichaelHatherly becd19d
Rename and move all .rst files to .md ones
MichaelHatherly 8d47ac8
Add Julia logo
MichaelHatherly 7f510ec
Convert doc/src/manual/arrays
MichaelHatherly ef6648c
Convert doc/src/manual/calling-c-and-fortran-code
MichaelHatherly 92fb84c
Convert doc/src/manual/complex-and-rational-numbers
MichaelHatherly 53811ff
Convert doc/src/manual/constructors
MichaelHatherly 505cdd9
Convert doc/src/manual/control-flow
MichaelHatherly 100fb02
Convert doc/src/manual/conversion-and-promotion
MichaelHatherly 002bd73
Convert doc/src/manual/dates
MichaelHatherly 74e7764
Convert doc/src/manual/documentation
MichaelHatherly d88c3c5
Convert doc/src/manual/embedding
MichaelHatherly 04fc039
Convert doc/src/manual/faq
MichaelHatherly b4f4525
Convert doc/src/manual/functions
MichaelHatherly 5e17741
Convert doc/src/manual/getting-started
MichaelHatherly 1da93f3
Convert doc/src/manual/handling-operating-system-variation
MichaelHatherly a43c921
Convert doc/src/manual/index
MichaelHatherly fa04dc4
Convert doc/src/manual/integers-and-floating-point-numbers
MichaelHatherly ed4ab64
Convert doc/src/manual/interacting-with-julia
MichaelHatherly f2107d3
Convert doc/src/manual/interfaces
MichaelHatherly e0de340
Convert doc/src/manual/introduction
MichaelHatherly d47b40e
Convert doc/src/manual/linear-algebra
MichaelHatherly e32b45f
Convert doc/src/manual/mathematical-operations
MichaelHatherly 454ace8
Convert doc/src/manual/metaprogramming
MichaelHatherly 679e136
Convert doc/src/manual/methods
MichaelHatherly f86ab7a
Convert doc/src/manual/modules
MichaelHatherly fba60de
Convert doc/src/manual/networking-and-streams
MichaelHatherly ff846a8
Convert doc/src/manual/noteworthy-differences
MichaelHatherly 0d65411
Convert doc/src/manual/packages
MichaelHatherly 0b6f736
Convert doc/src/manual/parallel-computing
MichaelHatherly 1f1f668
Convert doc/src/manual/performance-tips
MichaelHatherly 0163ce8
Convert doc/src/manual/profile
MichaelHatherly f0abd07
Convert doc/src/manual/running-external-programs
MichaelHatherly a41cc4a
Convert doc/src/manual/stacktraces
MichaelHatherly 36d07ae
Convert doc/src/manual/strings
MichaelHatherly e94288a
Convert doc/src/manual/style-guide
MichaelHatherly 46f1efa
Convert doc/src/manual/types
MichaelHatherly de3f705
Convert doc/src/manual/unicode-input
MichaelHatherly 2341ca3
Convert doc/src/manual/variables-and-scoping
MichaelHatherly cbb6124
Convert doc/src/manual/variables
MichaelHatherly a40eb3b
Convert doc/src/manual/workflow-tips
MichaelHatherly 177bdbf
Convert doc/src/stdlib/arrays
MichaelHatherly 3ab2174
Convert doc/src/stdlib/base
MichaelHatherly 6c44fbe
Convert doc/src/stdlib/c
MichaelHatherly 3276c6a
Convert doc/src/stdlib/collections
MichaelHatherly 2e88791
Convert doc/src/stdlib/constants
MichaelHatherly 63c89cf
Convert doc/src/stdlib/dates
MichaelHatherly eb940fa
Convert doc/src/stdlib/file
MichaelHatherly b21cd89
Convert doc/src/stdlib/index
MichaelHatherly c4c515b
Convert doc/src/stdlib/io-network
MichaelHatherly c3cb729
Convert doc/src/stdlib/iterators
MichaelHatherly ba1a672
Convert doc/src/stdlib/libc
MichaelHatherly e478fe0
Convert doc/src/stdlib/libdl
MichaelHatherly a48c67c
Convert doc/src/stdlib/linalg
MichaelHatherly aa6078c
Convert doc/src/stdlib/math
MichaelHatherly 2e9d4f8
Convert doc/src/stdlib/numbers
MichaelHatherly ac38d3a
Convert doc/src/stdlib/parallel
MichaelHatherly 2b40b77
Convert doc/src/stdlib/pkg
MichaelHatherly c878340
Convert doc/src/stdlib/profile
MichaelHatherly 4dae035
Convert doc/src/stdlib/punctuation
MichaelHatherly 017a9f7
Convert doc/src/stdlib/simd-types
MichaelHatherly ae1de4d
Convert doc/src/stdlib/sort
MichaelHatherly b43dff4
Convert doc/src/stdlib/stacktraces
MichaelHatherly c244c0e
Convert doc/src/stdlib/strings
MichaelHatherly da67cb6
Convert doc/src/stdlib/test
MichaelHatherly 134ac3a
Convert doc/src/devdocs/ast
MichaelHatherly 2abbdfa
Convert doc/src/devdocs/backtraces
MichaelHatherly 94de094
Convert doc/src/devdocs/boundscheck
MichaelHatherly 435d925
Convert doc/src/devdocs/callconv
MichaelHatherly 0341030
Convert doc/src/devdocs/cartesian
MichaelHatherly 1df1d1e
Convert doc/src/devdocs/C
MichaelHatherly ae6d027
Convert doc/src/devdocs/debuggingtips
MichaelHatherly aebc200
Convert doc/src/devdocs/eval
MichaelHatherly b69a5fd
Convert doc/src/devdocs/functions
MichaelHatherly d8f5b4e
Convert doc/src/devdocs/init
MichaelHatherly cc40c6a
Convert doc/src/devdocs/julia
MichaelHatherly 0d74803
Convert doc/src/devdocs/llvm
MichaelHatherly b0fb710
Convert doc/src/devdocs/locks
MichaelHatherly 5e9a2c4
Convert doc/src/devdocs/meta
MichaelHatherly c659571
Convert doc/src/devdocs/object
MichaelHatherly 33be9c3
Convert doc/src/devdocs/offset-arrays
MichaelHatherly 1e39955
Convert doc/src/devdocs/reflection
MichaelHatherly eb722cb
Convert doc/src/devdocs/sanitizers
MichaelHatherly 226e12a
Convert doc/src/devdocs/stdio
MichaelHatherly c4ea3a0
Convert doc/src/devdocs/subarrays
MichaelHatherly bb62572
Convert doc/src/devdocs/sysimg
MichaelHatherly 5cff3ab
Convert doc/src/devdocs/types
MichaelHatherly 08338b7
Convert doc/src/devdocs/valgrind
MichaelHatherly 105624a
Convert doc/src/index
MichaelHatherly 1c58e98
Add Documenter 'make.jl' build file
MichaelHatherly bd35156
Fix autolinks in /base
MichaelHatherly b1d015a
Remove unused files from doc/ directory
MichaelHatherly abddf00
Update Makefiles for Sphinx to Documenter.jl changes
MichaelHatherly 421633d
Update documentation section of CONTRIBUTING.md
MichaelHatherly File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,60 +1,43 @@ | ||
.. _devdocs-callconv: | ||
|
||
******************* | ||
Calling Conventions | ||
******************* | ||
|
||
.. currentmodule:: Base | ||
# Calling Conventions | ||
|
||
Julia uses three calling conventions for four distinct purposes: | ||
|
||
+-------+--------------+----------------------------------+ | ||
|Name |Prefix |Purpose | | ||
+=======+==============+==================================+ | ||
|Native |``julia_`` | Speed via specialized signatures | | ||
+-------+--------------+----------------------------------+ | ||
|JL Call|``jlcall_`` | Wrapper for generic calls | | ||
+ +--------------+----------------------------------+ | ||
| |``jl_`` | Builtins | | ||
+-------+--------------+----------------------------------+ | ||
|C ABI |``jlcapi_`` | Wrapper callable from C | | ||
+-------+--------------+----------------------------------+ | ||
| Name | Prefix | Purpose | | ||
|:------- |:--------- |:-------------------------------- | | ||
| Native | `julia_` | Speed via specialized signatures | | ||
| JL Call | `jlcall_` | Wrapper for generic calls | | ||
| JL Call | `jl_` | Builtins | | ||
| C ABI | `jlcapi_` | Wrapper callable from C | | ||
|
||
Julia Native Calling Convention | ||
------------------------------- | ||
## Julia Native Calling Convention | ||
|
||
The native calling convention is designed for fast non-generic calls. | ||
It usually uses a specialized signature. | ||
The native calling convention is designed for fast non-generic calls. It usually uses a specialized | ||
signature. | ||
|
||
* LLVM ghosts (zero-length types) are omitted. | ||
* LLVM scalars and vectors are passed by value. | ||
* LLVM aggregates (arrays and structs) are passed by reference. | ||
* LLVM ghosts (zero-length types) are omitted. | ||
* LLVM scalars and vectors are passed by value. | ||
* LLVM aggregates (arrays and structs) are passed by reference. | ||
|
||
A small return values is returned as LLVM return values. | ||
A large return values is returned via the "structure return" (``sret``) | ||
convention, where the caller provides a pointer to a return slot. | ||
A small return values is returned as LLVM return values. A large return values is returned via | ||
the "structure return" (`sret`) convention, where the caller provides a pointer to a return slot. | ||
|
||
An argument or return values thta is a homogeneous tuple is | ||
sometimes represented as an LLVM vector instead of an LLVM array. | ||
An argument or return values thta is a homogeneous tuple is sometimes represented as an LLVM vector | ||
instead of an LLVM array. | ||
|
||
JL Call Convention | ||
------------------ | ||
## JL Call Convention | ||
|
||
The JL Call convention is for builtins and generic dispatch. | ||
Hand-written functions using this convention are declared via the macro ``JL_CALLABLE``. | ||
The convention uses exactly 3 parameters: | ||
The JL Call convention is for builtins and generic dispatch. Hand-written functions using this | ||
convention are declared via the macro `JL_CALLABLE`. The convention uses exactly 3 parameters: | ||
|
||
* ``F`` - Julia representation of function that is being applied | ||
* ``args`` - pointer to array of pointers to boxes | ||
* ``nargs`` - length of the array | ||
* `F` - Julia representation of function that is being applied | ||
* `args` - pointer to array of pointers to boxes | ||
* `nargs` - length of the array | ||
|
||
The return value is a pointer to a box. | ||
|
||
C ABI | ||
----- | ||
## C ABI | ||
|
||
C ABI wrappers enable calling Julia from C. | ||
The wrapper calls a function using the native calling convention. | ||
C ABI wrappers enable calling Julia from C. The wrapper calls a function using the native calling | ||
convention. | ||
|
||
Tuples are always represented as C arrays. | ||
|
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
does markdown not have a way of making table entries extend across multiple rows?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nope, markdown doesn't usually have that I think, though there are some dialects, such as pandoc, that do seem to support those kind of things, so we could probably just extend our parser as well.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Cool. In case you hadn't guessed, I've been checking a few pages using http://services.w3.org/htmldiff, looking at a branch on my fork where I pushed the last pre-conversion commit's html docs (https://github.com/tkelman/julia/commits/gh-pages-preconversion). Haven't done too many yet, but the ones I've looked at have been remarkably clean.
We do need to figure something out for the windows buildbots though.