Re: Ocean preview finally open sourced

2016-07-04 Thread Ola Fosheim Grøstad via Digitalmars-d-announce

On Monday, 4 July 2016 at 08:34:15 UTC, Andrea Fontana wrote:
On Thursday, 30 June 2016 at 16:45:43 UTC, Leandro Lucarella 
wrote:
Hello again Dland! I'm happy to finally announce the open 
sourcing of our Ocean base library, just it time to keep our 
word and make it in June ;-)


https://github.com/sociomantic-tsunami/ocean/blob/v2.x.x/src/ocean/math/random/engines/CMWC.d

I always hoped to see a CMWC implementation in phobos. If it 
was default (pseudo-)random implementation I guess it will 
break all benchmark on random-related tests...


Well, it is simple. You can probably implement it in less than an 
hour and put Boost on it:


https://en.wikipedia.org/wiki/Multiply-with-carry#Complementary-multiply-with-carry_generators




Re: Ocean preview finally open sourced

2016-07-04 Thread Andrea Fontana via Digitalmars-d-announce
On Thursday, 30 June 2016 at 16:45:43 UTC, Leandro Lucarella 
wrote:
Hello again Dland! I'm happy to finally announce the open 
sourcing of our Ocean base library, just it time to keep our 
word and make it in June ;-)


https://github.com/sociomantic-tsunami/ocean/blob/v2.x.x/src/ocean/math/random/engines/CMWC.d

I always hoped to see a CMWC implementation in phobos. If it was 
default (pseudo-)random implementation I guess it will break all 
benchmark on random-related tests...





Re: Ocean preview finally open sourced

2016-07-01 Thread Jacob Carlborg via Digitalmars-d-announce

On 01/07/16 12:31, Leandro Lucarella wrote:


We know that, and again, the license was by far the biggest nightmare of
the open sourcing effort. Honestly we don't have the time to take on
this, but this is an area where external contributions would be
extremely helpful. Anyone can contact the original authors and ask for
permission (although to make sure we probably need to check the full
Tango history to see all the people that actually contributed, sometimes
the Authors section is quite bogus).


Walter, or someone, already asked the authors of Tango to re-license it. 
They said no, I don't recall if not all authors could be tracked down or 
if it was plain no.


--
/Jacob Carlborg


Re: Ocean preview finally open sourced

2016-07-01 Thread Ola Fosheim Grøstad via Digitalmars-d-announce

On Friday, 1 July 2016 at 10:31:59 UTC, Leandro Lucarella wrote:
Oh, well. Sorting out the license(s) were one of the major 
pains and time consuming tasks we had to do to opensource this, 
and apparently despite our best efforts there are stuff that we 
didn't see.


*nods* I was only looking at a few random filenames that sounded 
interesting just to get an idea of what it covered and what it 
could be useful for :-).


We know that, and again, the license was by far the biggest 
nightmare of the open sourcing effort.


Yes, this is often an issue when internal frameworks are open 
sourced.


Non-boost licenses might be less problematic for people who just 
run the executables on their own servers than for people who 
release binaries/source.




Re: Ocean preview finally open sourced

2016-07-01 Thread Leandro Lucarella via Digitalmars-d-announce

On Friday, 1 July 2016 at 09:43:53 UTC, Ola Fosheim Grøstad wrote:
On Thursday, 30 June 2016 at 16:45:43 UTC, Leandro Lucarella 
wrote:
(although please have a look at the licensing terms, even when 
all our code is Boost, there is code inherited from Tango that 
isn't), criticize it, and if you are really nice, fill issues 
and make pull requests!


I find the licensing a bit confusing. For instance

https://github.com/sociomantic-tsunami/ocean/blob/v2.x.x/src/ocean/math/Probability.d

Lists the licensing as: Tango 3 BSD Clause + Academic Free 
License v3.0.


But the original work Cephes seems to carry this ad-hoc license:
https://github.com/jeremybarnes/cephes/blob/master/readme


Oh, well. Sorting out the license(s) were one of the major pains 
and time consuming tasks we had to do to opensource this, and 
apparently despite our best efforts there are stuff that we 
didn't see.


This comes from Tango, so we kept the original Tango license. I 
would assume Tango people did a check on this, and had some sort 
of permission to change the license, but I will try to contact 
the author to make sure this is the case. If not, then we'll 
probably remove that module (we removed a lot of Tango modules 
because of dubious origin/license already).


https://github.com/sociomantic-tsunami/ocean/issues/2


«
Some software in this archive may be from the book _Methods and
Programs for Mathematical Functions_ (Prentice-Hall or Simon & 
Schuster

International, 1989) or from the Cephes Mathematical Library, a
commercial product. In either event, it is copyrighted by the 
author.
What you see here may be used freely but it comes with no 
support or

guarantee.

The two known misprints in the book are repaired here in the
source listings for the gamma function and the incomplete beta
integral.
»

Maybe it would be a good idea to sort out the code that is pure 
Boost, or obtain a boost license where the authors are known, 
because complicated licensing is a hindrance even if the 
"spirit" is the same across the licenses.


We know that, and again, the license was by far the biggest 
nightmare of the open sourcing effort. Honestly we don't have the 
time to take on this, but this is an area where external 
contributions would be extremely helpful. Anyone can contact the 
original authors and ask for permission (although to make sure we 
probably need to check the full Tango history to see all the 
people that actually contributed, sometimes the Authors section 
is quite bogus).


Re: Ocean preview finally open sourced

2016-07-01 Thread Leandro Lucarella via Digitalmars-d-announce

On Friday, 1 July 2016 at 09:13:46 UTC, Chris wrote:

On Friday, 1 July 2016 at 08:54:27 UTC, Leandro Lucarella wrote:
But if there is interest, I don't discard the splitting idea 
in some future.


It'd be great, if there was some sort of separation so that 
users know exactly what to use for cross-platform development 
and what not. Docs or some sort of a cheat sheet would be nice 
too. In this way users can see, if Ocean contains something 
interesting for the task at hand. There's less of a chance of 
adoption, if you have to go through the source code to see what 
it does.


Yes, the library is fairly well documented but one of our big 
debts is to build the documentation. Unfortunately the project 
lacked document generation for basically all its life, so even 
when some sort of DDoc-ish format is used, it not strictly DDoc 
because it was never actually generated, so when we start 
generating the docs we'll need to do a lot of cleanup and fixing.


But generating Docs is another thing that is high in our TODO 
list.


Re: Ocean preview finally open sourced

2016-07-01 Thread Ola Fosheim Grøstad via Digitalmars-d-announce
On Thursday, 30 June 2016 at 16:45:43 UTC, Leandro Lucarella 
wrote:
(although please have a look at the licensing terms, even when 
all our code is Boost, there is code inherited from Tango that 
isn't), criticize it, and if you are really nice, fill issues 
and make pull requests!


I find the licensing a bit confusing. For instance

https://github.com/sociomantic-tsunami/ocean/blob/v2.x.x/src/ocean/math/Probability.d

Lists the licensing as: Tango 3 BSD Clause + Academic Free 
License v3.0.


But the original work Cephes seems to carry this ad-hoc license:
https://github.com/jeremybarnes/cephes/blob/master/readme

«
Some software in this archive may be from the book _Methods and
Programs for Mathematical Functions_ (Prentice-Hall or Simon & 
Schuster

International, 1989) or from the Cephes Mathematical Library, a
commercial product. In either event, it is copyrighted by the 
author.
What you see here may be used freely but it comes with no support 
or

guarantee.

The two known misprints in the book are repaired here in the
source listings for the gamma function and the incomplete beta
integral.
»

Maybe it would be a good idea to sort out the code that is pure 
Boost, or obtain a boost license where the authors are known, 
because complicated licensing is a hindrance even if the "spirit" 
is the same across the licenses.




Re: Ocean preview finally open sourced

2016-07-01 Thread Chris via Digitalmars-d-announce

On Friday, 1 July 2016 at 08:54:27 UTC, Leandro Lucarella wrote:

Maybe in some future we might want to do some sort of 
separation between the more algorithmic stuff and the more 
platform-dependent stuff, because we actually spent quite some 
time and effort in removing some Tango's abstractions. It is a 
very conscious design decision to remove as many abstraction 
layers as possible, and for the platform-dependent part, we 
definitely don't want to go back. We need to work very closely 
to the OS facilities, so abstractions are plain noise and 
source of inefficiency for us :)


But if there is interest, I don't discard the splitting idea in 
some future.


It'd be great, if there was some sort of separation so that users 
know exactly what to use for cross-platform development and what 
not. Docs or some sort of a cheat sheet would be nice too. In 
this way users can see, if Ocean contains something interesting 
for the task at hand. There's less of a chance of adoption, if 
you have to go through the source code to see what it does.


Re: Ocean preview finally open sourced

2016-07-01 Thread Leandro Lucarella via Digitalmars-d-announce

On Thursday, 30 June 2016 at 21:32:47 UTC, Chris wrote:
On Thursday, 30 June 2016 at 21:20:16 UTC, Leandro Lucarella 
wrote:


I'd say some parts should work out of the box (there many 
things that are completely OS agnostic, like containers, 
cache, bindings to other libraries like PCRE, etc.), and some 
other it would be quite some work (for example all the I/O is 
tied to epoll, there is one class to work with direct I/O 
that's super Linux specific, etc.).


Hm. I'd have to see what works. I can't afford to be stuck to 
one OS.


Maybe in some future we might want to do some sort of separation 
between the more algorithmic stuff and the more 
platform-dependent stuff, because we actually spent quite some 
time and effort in removing some Tango's abstractions. It is a 
very conscious design decision to remove as many abstraction 
layers as possible, and for the platform-dependent part, we 
definitely don't want to go back. We need to work very closely to 
the OS facilities, so abstractions are plain noise and source of 
inefficiency for us :)


But if there is interest, I don't discard the splitting idea in 
some future.


Re: Ocean preview finally open sourced

2016-06-30 Thread Chris via Digitalmars-d-announce
On Thursday, 30 June 2016 at 21:20:16 UTC, Leandro Lucarella 
wrote:


I'd say some parts should work out of the box (there many 
things that are completely OS agnostic, like containers, cache, 
bindings to other libraries like PCRE, etc.), and some other it 
would be quite some work (for example all the I/O is tied to 
epoll, there is one class to work with direct I/O that's super 
Linux specific, etc.).


Hm. I'd have to see what works. I can't afford to be stuck to one 
OS.


Re: Ocean preview finally open sourced

2016-06-30 Thread Leandro Lucarella via Digitalmars-d-announce

On Thursday, 30 June 2016 at 20:59:42 UTC, Chris wrote:
How much would it take to make it cross platform (Windows, 
Mac). Unfortunately, we still have to cater for those two 
outliers :)


I'd say some parts should work out of the box (there many things 
that are completely OS agnostic, like containers, cache, bindings 
to other libraries like PCRE, etc.), and some other it would be 
quite some work (for example all the I/O is tied to epoll, there 
is one class to work with direct I/O that's super Linux specific, 
etc.).


Re: Ocean preview finally open sourced

2016-06-30 Thread Chris via Digitalmars-d-announce
How much would it take to make it cross platform (Windows, Mac). 
Unfortunately, we still have to cater for those two outliers :)


Re: Ocean preview finally open sourced

2016-06-30 Thread Stefan Koch via Digitalmars-d-announce
On Thursday, 30 June 2016 at 16:45:43 UTC, Leandro Lucarella 
wrote:
Hello again Dland! I'm happy to finally announce the open 
sourcing of our Ocean base library, just it time to keep our 
word and make it in June ;-)


[...]


I like the structTable :)


Ocean preview finally open sourced

2016-06-30 Thread Leandro Lucarella via Digitalmars-d-announce
Hello again Dland! I'm happy to finally announce the open 
sourcing of our Ocean base library, just it time to keep our word 
and make it in June ;-)


https://github.com/sociomantic-tsunami/ocean

To quote the README:

---
Ocean is a general purpose library, compatible with both D1 and 
D2, with a focus
on supporting the development of high-performance, real-time 
applications. This

focus has led to several noteworthy design choices:

* Ocean is not cross-platform. The only supported platform is 
Linux.
* Ocean assumes a single-threaded environment. Fiber-based 
multi-tasking is

  favoured, internally.
* Ocean aims to minimise use of the D garbage collector. GC 
collect cycles
  can be very disruptive to real-time applications, so Ocean 
favours a model of

  allocating resources once then reusing them, wherever possible.

Ocean began life as an extension of Tango, some elements of which 
were

eventually merged into Ocean.
---

Please consider this as a very early release, this is why we are 
"branding" it as a "preview". This is basically because, despite 
being working on the open sourcing full steam since DConf ended, 
we couldn't manage to set up all the infrastructure to be able to 
put all our development efforts in the public repo yet. So 
unfortunately the main development will still happen inside 
Sociomantic for this first phase (we'll only synchronize 
releases). When this will switch finally happens will depend on 
how much work it would imply to build a public infrastructure 
(mainly for automatic testing), and honestly, what's the 
community reception (we understand it might not be all that 
tempting being a D1 project that gets automatically converted to 
D2, thus not very idiomatic D2 :).


Anyway, the main big step is done. You can take a look at the 
code, use it or steal parts of it if you find them useful 
(although please have a look at the licensing terms, even when 
all our code is Boost, there is code inherited from Tango that 
isn't), criticize it, and if you are really nice, fill issues and 
make pull requests!


Also, in the near future we plan to write a blog post explaining 
a bit more about what Ocean is about, we'll let you know when 
it's ready, but we didn't want to delay the release for it :-)


Thank you!