Affix
view release on metacpan or search on metacpan
(1) You are permitted to use the Standard Version and create and use
Modified Versions for any purpose without restriction, provided that
you do not Distribute the Modified Version.
Permissions for Redistribution of the Standard Version
(2) You may Distribute verbatim copies of the Source form of the
Standard Version of this Package in any medium without restriction,
either gratis or for a Distributor Fee, provided that you duplicate
all of the original copyright notices and associated disclaimers. At
your discretion, such verbatim copies may or may not include a
Compiled form of the Package.
(3) You may apply any bug fixes, portability changes, and other
modifications made available from the Copyright Holder. The resulting
Package will still be considered the Standard Version, and as such
will be subject to the Original License.
Distribution of Modified Versions of the Package as Source
The `Void` type corresponds to the C `void` type. It is generally found in
typed pointers representing the equivalent to the `void *` pointer in C.
```perl
sub malloc :Native :Signature([Size_t] => Pointer[Void]);
my $data = malloc( 32 );
```
As the example shows, it's represented by a parameterized `Pointer[ ... ]`
type, using as parameter whatever the original pointer is pointing to (in this
case, `void`). This role represents native pointers, and can be used wherever
they need to be represented in a Perl script.
In addition, you may place a `Void` in your signature to skip a passed
argument.
### `Bool`
Boolean type may only have room for one of two values: `true` or `false`.
dyncall/ToDo view on Meta::CPAN
- add solaris support for x64
dyncall:
--------
- dyncall sparc v7/v8: -xO3 on SunPro segfaults in tests (observed years ago)
- callbacks and use of CC signature characters (only x86 has any support for different CCs for callbacks):
* support for arm (arm/thumb on same platform)
* check if ellipsis support is needed (is there any need for calling back into an ellipse function?)
* check if syscalls support is needed (is there any need for calling back into a syscall?)
- think about using 'inline' for all/most dyncall_api.c functions?
- support for where syscalls originate from on OpenBSD: http://undeadly.org/cgi?action=article;sid=20191202105849
- merge arm32_thumb_{gas/apple} and include thumb support for portasm
- x64 verification: return values are passed via RAX and RDX, and XMM0 and XMM1.
- find big endian arm box (also hardfloat), e.g. cubietruck: http://blog.netbsd.org/tnf/entry/working_arm_multiprocessor_support
- test if armhf/thumb is actually working... pulls in arm mode code in dyncall_callvm.c
- dyncall_call_mips_n32.h and dyncall_call_mips_n64.h are pretty much the same, share code
- support for return values: aggregate return values on non-x64
- support for argument values: aggregates on non-x64, vector types, long double (c89)
* make sure that struct support for ellipsis calls are not forgotten (copy everything by value)
- support for argument values: _Complex (c99)
- support for argument values: Fixed-width integer types (c99) - could be just aliases but would help abstracting it away from library users
dyncall/buildsys/cmake/Modules/UseLATEX.cmake view on Meta::CPAN
# specify tex files without the .tex extension is removed. The removed
# function is of dubious value anyway.
#
# When copying input files, skip over any file that exists in the
# binary directory but does not exist in the source directory with the
# assumption that these files were added by some other mechanism. I
# find this useful when creating large documents with multiple
# chapters that I want to build separately (for speed) as I work on
# them. I use the same boilerplate as the starting point for all
# and just copy it with different configurations. This was what the
# separate ADD_LATEX_DOCUMENT method was supposed to originally be for.
# Since its external use is pretty much deprecated, I removed that
# documentation.
#
# 1.4.1 Copy .sty files along with the other class and package files.
#
# 1.4.0 Added a MANGLE_TARGET_NAMES option that will mangle the target names.
#
# Fixed problem with copying bib files that became apparent with
# CMake 2.4.
#
dyncall/buildsys/cmake/Modules/UseLATEX.cmake view on Meta::CPAN
#
# 1.0.0 If both ps and pdf type images exist, just copy the one that
# matches the current render mode. Replaced a bunch of STRING
# commands with GET_FILENAME_COMPONENT commands that were made to do
# the desired function.
#
# 0.4.0 First version posted to CMake Wiki.
#
#############################################################################
# Find the location of myself while originally executing. If you do this
# inside of a macro, it will recode where the macro was invoked.
#############################################################################
SET(LATEX_USE_LATEX_LOCATION ${CMAKE_CURRENT_LIST_FILE}
CACHE INTERNAL "Location of UseLATEX.cmake file." FORCE
)
#############################################################################
# Generic helper macros
#############################################################################
dyncall/buildsys/cmake/Modules/UseLATEX.cmake view on Meta::CPAN
SEPARATE_ARGUMENTS(LATEX2HTML_CONVERTER_FLAGS)
FIND_PROGRAM(IMAGEMAGICK_CONVERT convert
DOC "The convert program that comes with ImageMagick (available at http://www.imagemagick.org)."
)
IF (NOT IMAGEMAGICK_CONVERT)
MESSAGE(SEND_ERROR "Could not find convert program. Please download ImageMagick from http://www.imagemagick.org and install.")
ENDIF (NOT IMAGEMAGICK_CONVERT)
OPTION(LATEX_SMALL_IMAGES
"If on, the raster images will be converted to 1/6 the original size. This is because papers usually require 600 dpi images whereas most monitors only require at most 96 dpi. Thus, smaller images make smaller files for web distributation and ca...
OFF)
IF (LATEX_SMALL_IMAGES)
SET(LATEX_RASTER_SCALE 16)
SET(LATEX_OPPOSITE_RASTER_SCALE 100)
ELSE (LATEX_SMALL_IMAGES)
SET(LATEX_RASTER_SCALE 100)
SET(LATEX_OPPOSITE_RASTER_SCALE 16)
ENDIF (LATEX_SMALL_IMAGES)
# Just holds extensions for known image types. They should all be lower case.
dyncall/doc/manual/callconvs/callconv_sparc64.tex view on Meta::CPAN
%structure (or containing storage unit in the case of bit fields) are subject to promotion into registers based on their type
%using the same rules as apply to scalar values (with the addition that a single-precision floating-point number assigned
%to the left half of an argument slot will be promoted into the corresponding even-numbered float register.). Any union
%type being passed directly is subject to promotion into the appropriate integer register(s).
%Note that a sixteen-byte structure with all integral fields assigned to locations %sp+BIAS+168 and %sp+BIAS+176 will
%be âsplit,â as the contents of location %sp+BIAS+168 will be promoted to %o5.
%Structures or unions larger than sixteen bytes are copied by the caller and passed indirectly; the caller will pass the
%address of a correctly aligned structure value. This sixty-four bit address will occupy one word in the parameter array,
%and may be promoted to an %o register like any other pointer value. The callee may modify the addressed structure.
%The caller can omit the copy if such omission cannot be detected. That requires (at least) that:
%* the original aggregate is already properly aligned,
%* the original aggregate is not aliased,
%* the original aggregate is not used after the call, and
%* no language-specific semantics require the copy.
\end{itemize}
\paragraph{Return values}
\begin{itemize}
\item results are expected by caller to be returned in \%o0-\%o3 (after reg window restore, meaning callee writes to \%i0-\%i3) for integers
\item \%d0,\%d2,\%d4,\%d6 are used for floating point values
\item for {\it non-trivial} C++ aggregates, the caller allocates space, passes pointer to it to the callee as a hidden first param
(meaning in \%o0), and callee writes return value to this space; the ptr to the aggregate is returned in the same register (after reg window restore)
dyncall/dynload/dynload_unix.c view on Meta::CPAN
strcpy(dst, src);
return l;
}
/* code for dlGetLibraryPath() is platform specific */
/* if dlinfo() exists use it (except on glibc, where it exists since version
* 2.3.3, but its implementation is dangerous, as no checks are done whether
* the handle is valid, thus rendering the returned values useless) check for
* RTLD_DI_LINKMAP and RTLD_SELF, which are #defines used by dlinfo() on most
* supported targets, or specifically check the OS (e.g. dlinfo() is originally
* from Solaris) */
#if ((defined(RTLD_DI_LINKMAP) && defined(RTLD_SELF)) || defined(OS_SunOS)) && !defined(DL_USE_GLIBC_ITER_PHDR)
#include <link.h>
int dlGetLibraryPath(DLLib* pLib, char* sOut, int bufSize)
{
struct link_map* p = NULL;
int l = -1;
if(dlinfo(pLib ? pLib : RTLD_SELF, RTLD_DI_LINKMAP, &p) == 0)
lib/Affix.pm view on Meta::CPAN
=head3 C<Void>
The C<Void> type corresponds to the C C<void> type. It is generally found in
typed pointers representing the equivalent to the C<void *> pointer in C.
sub malloc :Native :Signature([Size_t] => Pointer[Void]);
my $data = malloc( 32 );
As the example shows, it's represented by a parameterized C<Pointer[ ... ]>
type, using as parameter whatever the original pointer is pointing to (in this
case, C<void>). This role represents native pointers, and can be used wherever
they need to be represented in a Perl script.
In addition, you may place a C<Void> in your signature to skip a passed
argument.
=head3 C<Bool>
Boolean type may only have room for one of two values: C<true> or C<false>.
( run in 2.009 seconds using v1.01-cache-2.11-cpan-1c8d708658b )