Yes the understanding is correct. I simplified the code a little:
IMPORTANT: DMD 2.065 is used.
class Car{
void delegate() onEvent;
}
class Test{
this() shared
{
auto car = new shared Car();
assert( typeid( car.onEvent ).toString() == "shared(void
dele
On Monday, 16 June 2014 at 15:25:51 UTC, Ali Çehreli wrote:
Here is a minimal example that reproduces the issue and the
hint that compiles the code:
class SocketListener
{
public void delegate( shared(SocketListener) sender )
/* shared */// <-- UNCOMMENT TO COMPILE
eventWhenSt
Add "import std.algorithm". Splitter is defined there.
http://dlang.org/phobos/std_algorithm.html#splitter
On Monday, 16 June 2014 at 16:38:15 UTC, Sanios wrote:
Hello guys, as first I don't know, if I'm writing to correct
section, but I've got a problem. I'm actually reading book of D
guide and
Thanks Ali. That has solved the problem. Actually I tried to use
that `shared` as follows before:
public shared void delegate( shared(BasicSocketListener) sender )
eventWhenStarted;
Though it didn't work with that. When it is put "before" the
attribute name, it works now. It is just confusin
In a class I defined an event attribute as follows:
public void delegate( shared(SocketListener) sender )
eventWhenStarted;
---
An instance of SocketListener is created.
auto listener = new shared SocketListener();
---
I defined a shared method that will be called when the event
occurs.
On Friday, 16 May 2014 at 04:59:46 UTC, Taylor Hillegeist wrote:
The subject says it all really. i have this example:
import core.memory;
class fruit{
int value=5;
public int getvalue(){
return value;
}
}
int main(string[] args) {
GC.disable;
static fruit myfruit;
return
On Thursday, 1 May 2014 at 11:38:50 UTC, Nordlöw wrote:
Have anybody put together some D code for reading out tables
from ELF files?
A range/slice based version would be nice.
I don't know this though, in the morning Ubuntu has showed
updates. One of them was "libelf" which says in its descr
On Sunday, 20 April 2014 at 22:44:28 UTC, Bauss wrote:
I know the socket has the nonblocking settings, but how would I
actually go around using it in D? Is there a specific procedure
for it to work correctly etc.
I've taken a look at splat.d but it seems to be very outdated,
so that's why I
I believe for this case you would want this:
JSONValue oJson = [ "myEntry": "MyText" ];
Yeah, and unfortunately, there is no that easy way to create an
empty "object" type json value though. (Yes, I had a need for
that). I needed to work around of that.
Now suppose that my D shared library contains a class, rather
that just module ctors/dtors, how do I go about creating an
instance of that class and using its methods?
Steve
For this, you create an "Interface" that matches to the method
declaration of your class. But notice that instead of
Have you got a small example?
import std.stdio;
class Test{
private int number;
public void setNumber( int newValue ) shared{ number = newValue;
}
public int getNumber() shared{ return number; }
}
void main(){
auto test = new Test();
(cast(shared)test).set
On Sunday, 2 March 2014 at 20:16:42 UTC, Gary Willoughby wrote:
On Sunday, 2 March 2014 at 18:04:06 UTC, Dicebot wrote:
shared and non-shared entities have different implementation.
You unlikely want to have one for both.
It's part of my unit-testing toolkit that handles mocking of
objects. I
On Friday, 28 February 2014 at 17:29:09 UTC, Setra wrote:
I am using dmd_2.065.0-0_i386.deb on a 32 bit machine.
Hi Setra,
I am trying to make external libraries work as well, but having
problems continuously. Could you test that following function in
your library and call it from main prog
http://dlang.org/dll-linux.html#dso7
dmd lib.d -shared -fPIC -debug -gc -g -w -wi
-defaultlib=libphobos2.so
Problem about using shared libphobos is that I need to install
many different libraries on the target computer. On the web
server, I don't want to install DMD. I compiled before a DLL
On Friday, 28 February 2014 at 06:40:27 UTC, evilrat wrote:
On Friday, 28 February 2014 at 06:36:02 UTC, Tolga Cakiroglu
wrote:
On Friday, 28 February 2014 at 06:28:10 UTC, Tolga Cakiroglu
wrote:
Whops! Hold on a sec. I saw that I defined `foo` as `extern`
instead of `export`. Testing with
On Friday, 28 February 2014 at 06:28:10 UTC, Tolga Cakiroglu
wrote:
Whops! Hold on a sec. I saw that I defined `foo` as `extern`
instead of `export`. Testing with that.
Even Walter Bright's code doesn't use export, and goes with
extern only.
http://dlang.org/dll-linux.html#dso10
rt_finalize is defined in lifetime.d
(https://github.com/D-Programming-Language/druntime/blob/master/src/rt/lifetime.d).
Its part of the D runtime. It just forwards to rt_finalize2.
I don't know why you are getting an undefined symbol, though.
Is the signature different?
I made some chan
Whops! Hold on a sec. I saw that I defined `foo` as `extern`
instead of `export`. Testing with that.
On Friday, 28 February 2014 at 06:02:30 UTC, Mike wrote:
On Friday, 28 February 2014 at 05:59:23 UTC, Mike wrote:
On Friday, 28 February 2014 at 05:46:03 UTC, evilrat wrote:
that finalize i guess is for finalizing objects. but destroy
itself is deprecated. use clear() to do this instead.
I
that finalize i guess is for finalizing objects. but destroy
itself is deprecated. use clear() to do this instead.
Nope. No chance. I have removed all imports. All `destroy`s are
replaced with `clean`, and still same. I have deleted all
executables and compiled again and again.
./app: symbol
because there is no finalize. rt_init/rt_term is what you need
https://github.com/D-Programming-Language/druntime/blob/master/src/core/runtime.d#L30
I looked at the `/usr/include/dmd/druntime` folder with `grep
finalize -r`, and it brought me only one file, that is
`object.di`.
When I chec
I am trying to compile a shared library on Linux and use it.
lib.d
---
import core.runtime;
class A{}
extern(C) void foo(){
Object obj = new Object();
A objA = new A();
char[] c = new char[ 1024 ];
destroy( objA );
destroy( c );
2014 at 09:19:55 UTC, Tolga Cakiroglu
wrote:
I can't remember where I read it though, in documentation
probably, the `free` function calls the `delete` function as
well, and it can be used to remove object from memory.
Since there is garbage collector in the background already, you
don
I can't remember where I read it though, in documentation
probably, the `free` function calls the `delete` function as
well, and it can be used to remove object from memory.
Since there is garbage collector in the background already, you
don't have to do it in this way (and I am not doing as w
I have about 12 different separate programmes. While compiling
only one of them, it gives as warning as below:
/usr/include/dmd/phobos/std/mmfile.d(344): Deprecation: alias
core.sys.posix.sys.mman.MAP_ANON is deprecated - Please use
core.sys.linux.sys.mman for non-POSIX extensions
I used `g
On Saturday, 22 February 2014 at 11:08:41 UTC, evilrat wrote:
On Saturday, 22 February 2014 at 09:09:42 UTC, Tolga Cakiroglu
wrote:
I have written a DLL file in Linux (x86_64). It is as below:
File: lib.dll
=
class A{}
extern(C) void foo(){
Object obj = new Object
I have written a DLL file in Linux (x86_64). It is as below:
File: lib.dll
=
class A{}
extern(C) void foo(){
Object obj = new Object(); // test 1
A objA = new A(); // test 2
char[] c = new char[ 1024 ]; // test 3
}
Compilation code is below:
Simply "import"ing should work; doing that should not bring
definitions to the code. However, one side should also include
the module during its build.
Have you included the module on both the program's and
library's builds?
Ali
Hi Ali, Both of them have normal import for that module. I
I have written a programme and a library under Linux. When
programme is run, it tries to load the library. Both the
programme code and the library imports a module as
"apps.common.lib.config". Now, when I run the programme,
following error is seen:
Fatal Error while loading 'dll/lib.so':
The
On Tuesday, 18 February 2014 at 15:02:38 UTC, Steven
Schveighoffer wrote:
On Tue, 18 Feb 2014 05:47:41 -0500, Tolga Cakiroglu
wrote:
On Tuesday, 18 February 2014 at 10:15:51 UTC, Stanislav Blinov
wrote:
On Tuesday, 18 February 2014 at 10:07:37 UTC, Tolga Cakiroglu
(tcak) wrote:
Bug
On Tuesday, 18 February 2014 at 10:15:51 UTC, Stanislav Blinov
wrote:
On Tuesday, 18 February 2014 at 10:07:37 UTC, Tolga Cakiroglu
(tcak) wrote:
Bug?
Yup.
(I don't know if I should immediately file a bug when I think
it is a bug without asking what other people thinks.)
1) Do a
On Tuesday, 18 February 2014 at 09:24:50 UTC, Dicebot wrote:
On Tuesday, 18 February 2014 at 08:45:16 UTC, Tolga Cakiroglu
(tcak) wrote:
1. Because I am giving the full path of that file to be
imported. But compiler is complaining about that it cannot
find the file. If I remove the path, and
I have written a module as below:
file: lib.d
import core.sys.posix.dlfcn;
private static this(){}
private static ~this(){}
public shared class Apps{
}
---
This code is compiled with "-H" flag to generate an interface
file. Generated interface file is below:
file: lib.di
// D import f
On Tuesday, 18 February 2014 at 08:45:16 UTC, Tolga Cakiroglu
(tcak) wrote:
I am testing with the import expression. I am using the "-J"
flag while compiling.
dmd app.d -J/home/user/include
void main(){
auto test = json.parseJSON(
import("/home/user/include/test.json")
I am testing with the import expression. I am using the "-J" flag
while compiling.
dmd app.d -J/home/user/include
void main(){
auto test = json.parseJSON(
import("/home/user/include/test.json") );
}
1. Because I am giving the full path of that file to be imported.
But compiler is complai
35 matches
Mail list logo