August 02, 2011
Am 02.08.2011 01:51, schrieb Piotr Szturmaj:
> Jonathan M Davis wrote:
>> I think that it would be useful to query the community for what piece of
>> library functionality they don't currently have in D and would most
>> like to
>> see. For instance, there is no official logging framework in D or any
>> 3rd party
>> libraries which do it AFAIK. So, that could be one type of
>> functionality that
>> you may like to see. Now, there is a prospective implementation for
>> std.log
>> which shouldn't be all that far away from being reviewed, so listing
>> that here
>> wouldn't be all that useful, since it's on its way. But what other major
>> functionality do you miss in D that other languages' that you use have
>> available in their libraries?
>>
>> My hope here would be that we could get some good ideas going here
>> such that
>> we have can have a better idea what type of functionality it would be
>> particularly useful to be working on for Phobos or 3rd party D
>> libraries for
>> the community, and maybe it'll even get some people to actually go and
>> work on
>> these ideas so that we can improve the libraries that we have to work
>> with in
>> D. We can always use more help, and we definitely need a richer library
>> ecosystem for D. But even just discussing ideas could be of benefit.
>>
>> So, what major functionality which we don't currently have would you
>> like to
>> see in either Phobos or in a 3rd party library so that you could use
>> it in
>> your D programs?
>>
>> - Jonathan M Davis
> 
> 1. Cryptography (I already wrote all SHA hash implementations and HMAC, they will be open sourced under Boost license, I'm also working on Rijndael/AES impl.)
> 
> some of the proposed namespaces (just thinking loud):
> 
> std.crypto.cipher - block and stream ciphers
> std.crypto.hash - message digests (SHA1, RIPEMD, ...)
> std.crypto.mac - message auth codes like HMAC, CMAC, UMAC
> std.crypto.mode - block cipher modes like CBC, GCM, ...
> std.crypto.padding - padding schemes
> std.crypto.pki - asymmetric cryptography (RSA), PKI
> std.crypto.x509 - certificate support
> 

Maybe
http://www.dsource.org/projects/dcrypt
could be used.

Cheers,
- Daniel
August 02, 2011
On 8/1/2011 5:51 PM, Brad Roberts wrote:
> I don't think that any gui library belongs in phobos because there's
> essentially no agreement about what cross-platform library is standard.
> Pick any random 10 gui developers about what library they used (assuming
> they do anything cross-platform) and you'll get more than 1 answer.  I'd
> be shocked if you get a clear enough majority to suggest 1 that'd make a
> big set of people happy.
>
> Sorry, the gui library landscape just doesn't approach being obvious
> enough to be in the standard library.


Also, remember, we did try to endorse a standard gui library for D a while back. It was a disaster on every front.

August 02, 2011
"Jacob Carlborg" <doob@me.com> wrote in message news:j18dfe$20rj$1@digitalmars.com...
>
> Windows and Linux (GTK) 32bit. I'm in the middle of porting the Mac OS X version. These are the platforms that SWT supports:
>
> Windows 32/64bit
> Windows CE
> Linux 32/64bit and PPC64
> Solaris 10 x86 and Sparc
> HPUX IA64_32
> AIX PPC/64
> Mac OS X 32/64bit
>

It does Solaris, HPUX, and AIX, but not BSD??


August 02, 2011
"Alex Rønne Petersen" <xtzgzorex@gmail.com> wrote in message news:j19d45$pt5$1@digitalmars.com...
> On 02-08-2011 18:44, Jacob Carlborg wrote:
>>
>> Some kind of console library to easy handle input from a user, displaying progress bars, outputting text in different colors and similar.
>>
> Perhaps a curses binding of some sort?
>

Maybe for linux, but it should be cross-platform and therefore use the Win API for that stuff on Windows. (For some bizarre reason, ANSI display support was removed from approx Win2k onward.)


August 02, 2011
There's a win32 curses-like library around afaik. It uses escape codes instead of WinAPI calls.

Btw I've tried using WinAPI for console coloring, it's so damn clumsy to use. -_-
August 02, 2011
On 8/1/2011 8:51 PM, Brad Roberts wrote:
>
> Sorry, the gui library landscape just doesn't approach being obvious
> enough to be in the standard library.
>
> My 2 cents,
> Brad
>

After reading through this thread I now agree with you. I do think we need:

1. Ability to quickly install DWT (D package manager)
2. Links and documentation on d-p-l.org

That way it's sort of the official GUI library, but we're not tying up Phobos development with this gigantic code base.

Do you think this is a good idea? I think having some official GUI makes D more competitive with C#. It also allows IDE tools to start targeting designers for a particular library.

What about wxWidgets? It has C bindings making the wrappers easy. There's already wxD (http://wxd.sourceforge.net/), but I'm not sure how mature it is.
August 02, 2011
On 8/1/2011 5:35 PM, Nick Sabalausky wrote:
> "Johann MacDonagh"<johann.macdonagh.no@spam.gmail.com>  wrote in message
> news:j1501g$tbs$1@digitalmars.com...
>>
>> 1. Database interface. Should support sqlite, mysql, postgres, etc...
>> 3. Some kind of web framework.
>
> Agreed, but fortunately Adam's stuff for that is shaping up nicely:
>
> https://github.com/adamdruppe/misc-stuff-including-D-programming-language-web-stuff
>

Ah nice, I knew he was working on a web framework but I wasn't sure about database support. Perhaps we should start taking a look at it, making it "Phobos-like", and create bindings for a set of databases.
August 02, 2011
> On 8/1/2011 8:51 PM, Brad Roberts wrote:
> > Sorry, the gui library landscape just doesn't approach being obvious enough to be in the standard library.
> > 
> > My 2 cents,
> > Brad
> 
> After reading through this thread I now agree with you. I do think we need:
> 
> 1. Ability to quickly install DWT (D package manager)
> 2. Links and documentation on d-p-l.org
> 
> That way it's sort of the official GUI library, but we're not tying up Phobos development with this gigantic code base.
> 
> Do you think this is a good idea? I think having some official GUI makes D more competitive with C#. It also allows IDE tools to start targeting designers for a particular library.
> 
> What about wxWidgets? It has C bindings making the wrappers easy. There's already wxD (http://wxd.sourceforge.net/), but I'm not sure how mature it is.

I see no need for an official GUI. If there were an obvious winner, then maybe, but there isn't. And as Walter pointed out, apparently there was a previous attempt at endorsing a GUI library as the standard GUI library for D in the past and that went quite badly.

Having a package management tool for D would definitely help, and maybe some of the more major D projects should be listed on the official site so that it's easier for people to know about them and find them. But trying to make a particular GUI library official is not a good idea IMHO. What we need is for it to be easier to find and use major D projects such as GUI toolkits for D not to try and put them in the standard library so that it's easier for people to find them.

- Jonathan M Davis
August 02, 2011
Johann MacDonagh wrote:
> Perhaps we should start taking a look at it,
> making it "Phobos-like", and create bindings for a set of databases.

In my collection, I have (kinda crappy) implementations of my interface for mysql, postgres, sqlite and most recently ODBC.

Since they all use C libs though, I'm not really completely sure on if they are license compatible with phobos. And, of course, I'm happy with a minimal set of features; I'm happy enough with strings since it's better than PHP, so mission accomplished.

(I also have a lot of other code. Check out the readme in my github
for a listing of many of them.)
August 02, 2011
On 8/1/2011 5:50 PM, Jonathan M Davis wrote:
>> On 7/31/2011 11:32 PM, Walter Bright wrote:
>>> On 7/31/2011 6:29 PM, Johann MacDonagh wrote:
>>>> Basically, you give it some string (string, wstring, or dstring), and
>>>> it gives
>>>> you a range of tokens back. The token has the type, a slice of the
>>>> input that
>>>> corresponds to the token, line / column, and a value (e.g. an integer
>>>> constant).
>>>
>>> I suggest making the input a range.
>>
>> So, the reason I didn't do this initially was to make slicing a lot
>> easier. It could easily be changed to any kind of input range of
>> characters. However, it looks like something that's not a direct port of
>> DMD isn't worthwhile.
>
> Some adjustment can be made. It _does_ need to have a range-based API, and
> some changes are inevitable in order to do that. But the changes to the basic
> logic need to be minimal.
>
> The thing is that it can be an input range _and_ take advantage of slicing
> with the use of static ifs in the appropriate places. If hasSlicing!Range is
> true, then you can have a static if branch for slicing it. If it's a narrow
> string then you can use another branch. And if it's neither, then it won't get
> the advantages of slicing. It complicates the code somewhat, but the proper
> use of Phobos functions which deal with it for you should help.
>
> In any case, the point is that we need to port dmd's lexer over to D, changing
> it enough to give it a range-based interface (so it'll take a range of dchars
> but return a range of tokens) but avoiding changing more than necessary so
> that it's easy to port changes and fixes back and forth between it and dmd's
> front end.
>
> - Jonathan M Davis

Ok, I'll work on that this weekend. I'll do as close to a port as possible while stripping out anything that doesn't make sense and D-ifying the code a little bit. It will accept anything that isInputRange!R && isSomeChar!(ElementEncodingType!R) and return an input range of tokens. I've already looked through quite a bit of the lexer.c source while writing my other lexer, and the port should be easy (famous last words).