As of erts version 5.5.3 the driver interface has been extended
(see extended marker).
- The extended interface introduce
+ The extended interface introduces
version management,
the possibility to pass capability flags
(see driver flags)
@@ -45,21 +45,21 @@
Old drivers (compiled with an erl_driver.h from an
earlier erts version than 5.5.3) have to be recompiled
- (but does not have to use the extended interface).
+ (but do not have to use the extended interface).
The driver_entry structure is a C struct that all erlang
- drivers defines. It contains entry points for the erlang driver
+ drivers define. It contains entry points for the erlang driver
that are called by the erlang emulator when erlang code accesses
the driver.
The erl_driver driver
- API functions needs a port handle
+ API functions need a port handle
that identifies the driver instance (and the port in the
emulator). This is only passed to the start function, but
not to the other functions. The start function returns a
driver-defined handle that is passed to the other functions. A
- common practice is to have the start function allocating
+ common practice is to have the start function allocate
some application-defined structure and stash the port
handle in it, to use it later with the driver API functions.
The driver call-back functions are called synchronously from the
@@ -235,7 +235,7 @@ typedef struct erl_drv_entry {
void *handle
-
-
This field is reserved for the emulators internal use. The
+
This field is reserved for the emulator's internal use. The
emulator will modify this field; therefore, it is important
that the driver_entry isn't declared const.
@@ -399,7 +399,7 @@ typedef struct erl_drv_entry {
void *handle2
-
- This field is reserved for the emulators internal use. The
+ This field is reserved for the emulator's internal use. The
emulator will modify this field; therefore, it is important
that the driver_entry isn't declared const.
--
cgit v1.2.3
From dd3e666c5114f81c9518e9f5ba14959ced079ab6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jean-S=C3=A9bastien=20P=C3=A9dron?=
Date: Mon, 14 Dec 2009 23:04:00 +0100
Subject: Add dependencies Makefile generation to erlc(1) and compile(3)
This is useful when a project is built with Makefiles and erlc(1)
instead of EMakefiles. Tracking dependencies by hand is error-prone and
it becomes painful when using external application headers like EUnit's
one.
A dependencies Makefile will look like this:
module.beam: module.erl \
/usr/local/lib/erlang/lib/eunit-2.1.4/include/eunit.hrl \
header.hrl
When included in the main Makefile, 'module' will be recompiled only
when needed.
GCC offers the same feature and new erlc(1) options are compatible with
it.
More informations at:
http://wiki.github.com/dumbbell/otp/dependencies-makefile
---
erts/doc/src/erlc.xml | 44 ++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 44 insertions(+)
(limited to 'erts/doc')
diff --git a/erts/doc/src/erlc.xml b/erts/doc/src/erlc.xml
index 1e8960c22c..7e689c418e 100644
--- a/erts/doc/src/erlc.xml
+++ b/erts/doc/src/erlc.xml
@@ -141,6 +141,50 @@
for compiling native code, which needs to be compiled with the same
run-time system that it should be run on.
+ -M
+ -
+
Produces a Makefile rule to track headers dependencies. The
+ rule is sent to stdout. No object file is produced.
+
+
+ -MF Makefile
+ -
+
Like the option above, except that the
+ Makefile is written to Makefile. No object
+ file is produced.
+
+
+ -MD
+ -
+
Same as .Pbeam]]>.
+
+
+ -MT Target
+ -
+
In conjunction with or
+ , change the name of the rule emitted
+ to Target.
+
+
+ -MQ Target
+ -
+
Like the option above, except that
+ characters special to make(1) are quoted.
+
+
+ -MP
+ -
+
In conjunction with or
+ , add a phony target for each dependency.
+
+
+ -MG
+ -
+
In conjunction with or
+ , consider missing headers as generated
+ files and add them to the dependencies.
+
+
--
-
Signals that no more options will follow.
--
cgit v1.2.3
From 1580937874b35350c0ff5c2a72b2540d7ec28378 Mon Sep 17 00:00:00 2001
From: Sverker Eriksson
Date: Tue, 15 Feb 2011 14:48:08 +0100
Subject: Allow unexpected driver input event in driver_SUITE:smp_select
epoll on Linux has been seen to sometimes trigger unexpected
events. Most of the time these events are filtered by erl_check_io,
but may slip up to the driver in cases when fd's are reused.
Also made clear in driver docs that spurious events may happen.
---
erts/doc/src/driver_entry.xml | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
(limited to 'erts/doc')
diff --git a/erts/doc/src/driver_entry.xml b/erts/doc/src/driver_entry.xml
index dd949d4048..7d1585f483 100644
--- a/erts/doc/src/driver_entry.xml
+++ b/erts/doc/src/driver_entry.xml
@@ -4,7 +4,7 @@
- 20012010
+ 20012011
Ericsson AB. All Rights Reserved.
@@ -219,6 +219,10 @@ typedef struct erl_drv_entry {
completes, write to the pipe (use SetEvent on
Windows), this will make the emulator call
ready_input or ready_output.
+ Spurious events may happen. That is, calls to ready_input
+ or ready_output even though no real events are signaled. In
+ reality it should be rare (and OS dependant), but a robust driver
+ must nevertheless be able to handle such cases.
char *driver_name
-
--
cgit v1.2.3
From 804bb7f78fcf94609f31a9d429b82c37d1f1173b Mon Sep 17 00:00:00 2001
From: Kostis Sagonas
Date: Wed, 2 Mar 2011 09:32:09 +0200
Subject: Document exiting and garbage_collecting process statuses
---
erts/doc/src/erlang.xml | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
(limited to 'erts/doc')
diff --git a/erts/doc/src/erlang.xml b/erts/doc/src/erlang.xml
index 78d58a1e56..c3f06982f5 100644
--- a/erts/doc/src/erlang.xml
+++ b/erts/doc/src/erlang.xml
@@ -3980,7 +3980,8 @@ os_prompt%
{status, Status}
-
Status is the status of the process. Status
- is waiting (waiting for a message), running,
+ is exiting, garbage_collecting,
+ waiting (for a message), running,
runnable (ready to run, but another process is
running), or suspended (suspended on a "busy" port
or by the erlang:suspend_process/[1,2] BIF).
--
cgit v1.2.3