Kitchens Sale Portsmouth

2014-10-09 Thread nyidampenthol90 via Digitalmars-d-learn
Kitchens Sale Portsmouth. Thirty Ex Display Kitchens To Clear. www.exdisplaykitchens1.co.uk £ 595 Each with appliances.Tel 01616-694785 [url=http://www.kitchenunits-portsmouth.co.uk]Kitchens Sale Portsmouth[/url]

Re: DUB Errors

2014-10-09 Thread Sönke Ludwig via Digitalmars-d-learn
Am 05.10.2014 15:50, schrieb Nordlöw: On Sunday, 5 October 2014 at 06:39:00 UTC, Sönke Ludwig wrote: Judging by the log output it should be fixed (on vibe.d's side) with [1] by using a version based dependency to the OpenSSL bindings with an old version*. I've tagged a new RC-2 version now

Re: Search Engine

2014-10-09 Thread ANtlord via Digitalmars-d-learn
On Wednesday, 8 October 2014 at 20:15:33 UTC, Chris Williams wrote: On Wednesday, 8 October 2014 at 18:15:08 UTC, ANtlord wrote: It would be stable? I mean program, that will use C++ extern interface. Trying to link to C++ code will cause some work to solve build issues, but there shouldn't

Re: Multithreading in D

2014-10-09 Thread Konstantin via Digitalmars-d-learn
Are you looking for parallel? http://dlang.org/library/std/parallelism/parallel.html I have seen this, but I'm not sure how to use it. Maybe: float[][] maps = new float[#threads][resolution * resolution]; foreach(i, ref elem; parallel(maps)){ elem = generateTerrain(...); } Does this

Re: Multithreading in D

2014-10-09 Thread Sag Academy via Digitalmars-d-learn
On Thursday, 9 October 2014 at 10:10:20 UTC, Konstantin wrote: Are you looking for parallel? http://dlang.org/library/std/parallelism/parallel.html I have seen this, but I'm not sure how to use it. Maybe: float[][] maps = new float[#threads][resolution * resolution]; foreach(i, ref elem;

dupping to allow vector operation?

2014-10-09 Thread bearophile via Digitalmars-d-learn
Observe: void main() { int[3] a1 = [1, 3, 6]; int[] a2 = a1[] * 3; // line 3, Error int[] a3 = a1.dup[] *= 3; // line 4, OK? int[] a4 = (a1[] * 3).dup; // line 5, Error } Currently the operation in line 4 is accepted: test.d(3,17): Error: array operation a1[] * 3

Using inline assembler

2014-10-09 Thread Etienne via Digitalmars-d-learn
I'm a bit new to the inline assembler, I'm trying to use the `movdqu` operation to move a 128 bit double quadword from a pointer location into another location like this: align(16) union __m128i { ubyte[16] data }; void store(__m128i* src, __m128i* dst) { asm { movdqu [dst], src; } }

Re: Using inline assembler

2014-10-09 Thread anonymous via Digitalmars-d-learn
On Thursday, 9 October 2014 at 12:37:20 UTC, Etienne wrote: I'm a bit new to the inline assembler, I'm trying to use the `movdqu` operation to move a 128 bit double quadword from a pointer location into another location like this: align(16) union __m128i { ubyte[16] data }; void

Re: Using inline assembler

2014-10-09 Thread Etienne via Digitalmars-d-learn
On 2014-10-09 8:54 AM, anonymous wrote: This compiles: align(16) union __m128i { ubyte[16] data; } /* note the position of the semicolon */ void store(__m128i* src, __m128i* dst) { asm { movdqu XMM0, [src]; /* note: [src] */ movdqu [dst], XMM0; } } Yes,

Re: Using inline assembler

2014-10-09 Thread Etienne via Digitalmars-d-learn
Maybe someone can help with the more specific problem. I'm translating a crypto engine here: https://github.com/etcimon/botan/blob/master/source/botan/block/aes_ni/aes_ni.d But I need this to work on DMD, LDC and GDC. I decided to write the assembler code directly for the functions in this

Re: Using inline assembler

2014-10-09 Thread anonymous via Digitalmars-d-learn
On Thursday, 9 October 2014 at 13:29:27 UTC, Etienne wrote: On 2014-10-09 8:54 AM, anonymous wrote: This compiles: align(16) union __m128i { ubyte[16] data; } /* note the position of the semicolon */ void store(__m128i* src, __m128i* dst) { asm { movdqu XMM0, [src]; /*

Re: Using inline assembler

2014-10-09 Thread Etienne via Digitalmars-d-learn
On 2014-10-09 9:46 AM, anonymous wrote: I'm out of my knowledge zone here, but it seems to work when you move the pointers to registers first: void store(__m128i* src, __m128i* dst) { asm { mov RAX, src; mov RBX, dst; movdqu XMM0, [RAX];

Re: Multithreading in D

2014-10-09 Thread Ali Çehreli via Digitalmars-d-learn
On 10/09/2014 03:10 AM, Konstantin wrote: Are you looking for parallel? http://dlang.org/library/std/parallelism/parallel.html I have seen this, but I'm not sure how to use it. I have the following chapter with some examples: http://ddili.org/ders/d.en/parallelism.html If concurrency is

Byte Array Literal

2014-10-09 Thread Anibal via Digitalmars-d-learn
Hi everyone, I'm just starting with D and i need a way to declare a byte array something like: byte[] arr = [ 0x00, 0xA4, 0x04]; This throws a int[] to byte[] cast error Tried also these ones byte[] arr = \x00\xA4\x04; byte[] arr = [ '\x00', '\xA4', '\x04']; byte[] arr = [ u'\x00', u'\xA4',

Re: Byte Array Literal

2014-10-09 Thread bearophile via Digitalmars-d-learn
Anibal: byte[] arr = [ 0x00, 0xA4, 0x04]; This throws a int[] to byte[] cast error You want ubytes (unsigned bytes) because 0x04 is 164 that is bigger than byte.max. So use: ubyte[] arr = [ 0x00, 0xA4, 0x04]; I also tried byte[] arr = [cast(byte) 0x00, cast(byte)0xA4, cast(byte)

Re: Byte Array Literal

2014-10-09 Thread bearophile via Digitalmars-d-learn
You want ubytes (unsigned bytes) because 0x04 is 164 that is bigger than byte.max. I'd like bytes to be named sbyte and ubyte in D, but Walter has refused this. Bye, bearophile

Re: Building a dmd that works on old systems: TLS problems with libc

2014-10-09 Thread Kevin Lamonte via Digitalmars-d-learn
On Friday, 3 October 2014 at 10:47:11 UTC, David Nadlinger wrote: On Friday, 3 October 2014 at 08:47:07 UTC, Atila Neves wrote: ld: .../libphobos2.a(sections_linux_570_420.o): undefined reference to symbol '__tls_get_addr@@GLIBC_2.3' /lib64/ld-linux-x86-64.so.2: error adding symbols: DSO

Re: dupping to allow vector operation?

2014-10-09 Thread John Colvin via Digitalmars-d-learn
On Thursday, 9 October 2014 at 11:29:14 UTC, bearophile wrote: Observe: void main() { int[3] a1 = [1, 3, 6]; int[] a2 = a1[] * 3; // line 3, Error int[] a3 = a1.dup[] *= 3; // line 4, OK? int[] a4 = (a1[] * 3).dup; // line 5, Error } Currently the operation in

Re: dupping to allow vector operation?

2014-10-09 Thread via Digitalmars-d-learn
On Thursday, 9 October 2014 at 11:29:14 UTC, bearophile wrote: Observe: void main() { int[3] a1 = [1, 3, 6]; int[] a2 = a1[] * 3; // line 3, Error int[] a3 = a1.dup[] *= 3; // line 4, OK? int[] a4 = (a1[] * 3).dup; // line 5, Error } Currently the operation in

Simple import question

2014-10-09 Thread WhatMeWorry via Digitalmars-d-learn
Hope this question is not too simple minded but, In the TDPL it says: To import one module from another, specify the name of the module in an import declaration. The name must include the relative path computed from the directory where compilation takes place Ok, but how does one

Re: How do I write __simd(void16*, void16) ?

2014-10-09 Thread Benjamin Thaut via Digitalmars-d-learn
Am 08.10.2014 21:12, schrieb Etienne: On 2014-10-08 3:04 PM, Benjamin Thaut wrote: I strongly advise to not use core.simd at this point. It is in a horribly broken state and generates code that is far from efficient. If I think I'll have to re-write the xmmintrin.h functions I need as string

Re: Simple import question

2014-10-09 Thread via Digitalmars-d-learn
It's the current working directory, i.e. the directory from where you run the compiler. IDEs usually use the root directory of the project as working directory.

Re: dupping to allow vector operation?

2014-10-09 Thread bearophile via Digitalmars-d-learn
Marc Schütz: It's equivalent to: int[] tmp = a1[] * 3; int[] a4 = tmp.dup; The first part is of course identical to line 3, so this should be an error, too. Normal rules for evaluation order require `a1[] * 3` to be evaluated before `(...).dup`, so where is it supposed to store the

Re: Byte Array Literal

2014-10-09 Thread Anibal via Digitalmars-d-learn
On Thursday, 9 October 2014 at 15:41:48 UTC, bearophile wrote: You want ubytes (unsigned bytes) because 0x04 is 164 that is bigger than byte.max. I'd like bytes to be named sbyte and ubyte in D, but Walter has refused this. Bye, bearophile Got it to work, thanks a lot!

Re: How do I write __simd(void16*, void16) ?

2014-10-09 Thread Etienne via Digitalmars-d-learn
On 2014-10-09 2:32 PM, Benjamin Thaut wrote: I know that GDC stopped supporting D style inline asm a while ago. If you need inline asm with GDC you have to use the gcc style inline assembly. I don't know about ldc though. But generally you want to use the official intrinsics with gdc and ldc

Forward Reference

2014-10-09 Thread Anibal via Digitalmars-d-learn
Hi everyone, I'm trying to something like a tree structure. The following: import std.container; class Tree { private SList!Tree subTree; } Produces: class Tree no size yet for forward reference. How i should proceed in order to keep this declaration? Thanks a lot! PD: (You guys

Re: Byte Array Literal

2014-10-09 Thread ketmar via Digitalmars-d-learn
On Thu, 09 Oct 2014 15:26:52 + Anibal via Digitalmars-d-learn digitalmars-d-learn@puremagic.com wrote: additionally to all bearophile said, there is another interesting thing in D: special string literals for hex data. immutable ubyte[] n = cast(typeof(n))xdeadf00d; or even: immutable

Re: Forward Reference

2014-10-09 Thread Njkp via Digitalmars-d-learn
On Thursday, 9 October 2014 at 19:04:56 UTC, Anibal wrote: Hi everyone, I'm trying to something like a tree structure. The following: import std.container; class Tree { private SList!Tree subTree; } Produces: class Tree no size yet for forward reference. How i should proceed in

Re: Simple import question

2014-10-09 Thread Adam D. Ruppe via Digitalmars-d-learn
On Thursday, 9 October 2014 at 18:21:32 UTC, WhatMeWorry wrote: To import one module from another, specify the name of the module in an import declaration. The name must include the relative path computed from the directory where compilation takes place This is not true. It is a REALLY

Re: Forward Reference

2014-10-09 Thread Anibal via Digitalmars-d-learn
On Thursday, 9 October 2014 at 19:29:13 UTC, ketmar via Digitalmars-d-learn wrote: On Thu, 09 Oct 2014 19:04:55 + Anibal via Digitalmars-d-learn digitalmars-d-learn@puremagic.com wrote: Hi everyone, I'm trying to something like a tree structure. The following: import std.container;

object hijacked ?

2014-10-09 Thread Jacob Carlborg via Digitalmars-d-learn
I have a file named Object.d, in a directory called foo. The module name of this file is foo.Object. As it happens, I'm using OS X which uses a case insensitive file system. I also have another file, say Bar.d in foo, with the module name foo.Bar. When I try to compile/run Bar.d with rdmd as

Re: Simple import question

2014-10-09 Thread Steven Schveighoffer via Digitalmars-d-learn
On 10/9/14 3:30 PM, Adam D. Ruppe wrote: On Thursday, 9 October 2014 at 18:21:32 UTC, WhatMeWorry wrote: To import one module from another, specify the name of the module in an import declaration. The name must include the relative path computed from the directory where compilation takes place

Re: Byte Array Literal

2014-10-09 Thread bearophile via Digitalmars-d-learn
ketmar: additionally to all bearophile said, there is another interesting thing in D: special string literals for hex data. immutable ubyte[] n = cast(typeof(n))xdeadf00d; or even: immutable ubyte[] n = cast(typeof(n))xde ad f 0 0 d; spaces doesn't matter, only digits do. The problem

Re: object hijacked ?

2014-10-09 Thread Dicebot via Digitalmars-d-learn
I think this is an issue with the import resolution, not module system. The way it is implemented right now DMD stops searching for object.d / object.di once it has found one. So while your module name is not interpreted as object _original_ object.di does not get imported and you get lot of

Re: How do I write __simd(void16*, void16) ?

2014-10-09 Thread Benjamin Thaut via Digitalmars-d-learn
Am 09.10.2014 21:04, schrieb Etienne: On 2014-10-09 2:32 PM, Benjamin Thaut wrote: I know that GDC stopped supporting D style inline asm a while ago. If you need inline asm with GDC you have to use the gcc style inline assembly. I don't know about ldc though. But generally you want to use the

Re: How do I write __simd(void16*, void16) ?

2014-10-09 Thread David Nadlinger via Digitalmars-d-learn
On Thursday, 9 October 2014 at 20:29:44 UTC, Benjamin Thaut wrote: Unforunately the gcc.buildints module seems to be generated during compilation of gdc, so you might want to get a binary version or compile it yourself to see the module. By the way, LDC has ldc.gccbuiltins_x86 too. LLVM

std.container.Array deep-copy?

2014-10-09 Thread qznc via Digitalmars-d-learn
How can you deep-copy a std.container.Array instance? The actual array data is heap-allocated and reference-counted. Assignment and .dup only create additional references. Using a copy constructor yields an error: Array!Foo x; Array!Foo y = Array!Foo(x); Error: template

Re: How do I write __simd(void16*, void16) ?

2014-10-09 Thread Etienne via Digitalmars-d-learn
On 2014-10-09 4:29 PM, Benjamin Thaut wrote: I think a good starting point would be Manu's std.simd module. I don't know if he is still working on it, but a old version can be found here: https://github.com/TurkeyMan/simd/blob/master/std/simd.d That's a great reference! I can do a lot from

Re: std.container.Array deep-copy?

2014-10-09 Thread qznc via Digitalmars-d-learn
On Thursday, 9 October 2014 at 21:14:46 UTC, qznc wrote: How can you deep-copy a std.container.Array instance? Ok, the deep-copy problem already got resolved on reddit: Use dup. However, the error is still open. You cannot give an Array!X argument to constructor/replace/insertBefore of

Re: How do I write __simd(void16*, void16) ?

2014-10-09 Thread Etienne via Digitalmars-d-learn
On 2014-10-09 5:05 PM, David Nadlinger wrote: On Thursday, 9 October 2014 at 20:29:44 UTC, Benjamin Thaut wrote: Unforunately the gcc.buildints module seems to be generated during compilation of gdc, so you might want to get a binary version or compile it yourself to see the module. By the

Re: How do I write __simd(void16*, void16) ?

2014-10-09 Thread Trass3r via Digitalmars-d-learn
On Wednesday, 8 October 2014 at 18:56:31 UTC, Etienne wrote: I can't seem to find this function anywhere: __simd(void16*, void16) MOVDQU = void _mm_storeu_si128 ( __m128i *p, __m128i a) MOVDQU = __m128i _mm_loadu_si128 ( __m128i *p) Is there a module by now that allows to directly write

Re: Splitting Ranges using Lambda Predicates

2014-10-09 Thread Nordlöw
On Wednesday, 11 June 2014 at 08:58:58 UTC, monarch_dodra wrote: auto slicer(alias isTerminator, Range)(Range input) if (((isRandomAccessRange!Range hasSlicing!Range) || isSomeString!Range) is(typeof(unaryFun!isTerminator(input.front { return SlicerResult!(unaryFun!isTerminator,

Re: Advanced (HTML5/JS) client webpage connecting to vibe.d server backend

2014-10-09 Thread Nordlöw
On Wednesday, 8 October 2014 at 23:34:47 UTC, Rikki Cattermole wrote: I have a client side templating solution you might be interested in [0]. But not a fully featured sort of thing. [0] https://github.com/rikkimax/client-templating Thanks.

Re: Splitting Ranges using Lambda Predicates

2014-10-09 Thread monarch_dodra via Digitalmars-d-learn
On Thursday, 9 October 2014 at 21:55:03 UTC, Nordlöw wrote: On Wednesday, 11 June 2014 at 08:58:58 UTC, monarch_dodra wrote: auto slicer(alias isTerminator, Range)(Range input) if (((isRandomAccessRange!Range hasSlicing!Range) || isSomeString!Range)

Re: How do I write __simd(void16*, void16) ?

2014-10-09 Thread Etienne Cimon via Digitalmars-d-learn
On 2014-10-09 17:32, Etienne wrote: That's very helpful, the problem remains that the API is unfamiliar. I think most of the time, simd code will only need to be translated from basic function calls, it would've been nice to have equivalents :-p Sorry, I think I had a bad understanding. I

Re: building shared library from D code to import into cython

2014-10-09 Thread Ellery Newcomer via Digitalmars-d-learn
On Wednesday, 8 October 2014 at 00:25:57 UTC, Laeeth Isharc wrote: Hi. Thanks for the quick response. The -defaultlib was left around from trying all kinds of combinations of dmd and gcc. I am not used to gcc, and it will take me some time to become properly acquainted with all the

Re: What is a sink delegate?

2014-10-09 Thread Joel via Digitalmars-d-learn
On Tuesday, 30 September 2014 at 17:27:09 UTC, Adam D. Ruppe wrote: On Tuesday, 30 September 2014 at 17:22:44 UTC, Gary Willoughby wrote: What is a sink delegate? Instead of string toString() { return foo; } for example, you would use: void toString(void delegate(string) sink) { sink(foo);

Re: What is a sink delegate?

2014-10-09 Thread thedeemon via Digitalmars-d-learn
On Friday, 10 October 2014 at 03:06:33 UTC, Joel wrote: How do you use that toString? Maybe an example? void main() { Try t = Try(Joel, 35); t.toString(s = writeln(s)); }

Re: What is a sink delegate?

2014-10-09 Thread Ali Çehreli via Digitalmars-d-learn
On 10/09/2014 08:06 PM, Joel wrote: On Tuesday, 30 September 2014 at 17:27:09 UTC, Adam D. Ruppe wrote: On Tuesday, 30 September 2014 at 17:22:44 UTC, Gary Willoughby wrote: What is a sink delegate? Instead of string toString() { return foo; } for example, you would use: void

Re: Splitting Ranges using Lambda Predicates

2014-10-09 Thread Nordlöw
On Thursday, 9 October 2014 at 22:01:31 UTC, monarch_dodra wrote: My quick guess is you are missing the *global* imports for the restraints. The compiler doesn't complain because the constraint is in a is(typeof(...)) test. The reason the typeof fails is simply cause the compiler has no idea