Jump to page: 1 2
Thread overview
Why did etc.c.odbc move to core.sys.windows?
May 23, 2021
singingbush
May 23, 2021
singingbush
May 23, 2021
Paul Backus
May 26, 2021
singingbush
May 26, 2021
Atila Neves
May 28, 2021
singingbush
May 31, 2021
Kyle Ingraham
May 31, 2021
Luís Ferreira
Jun 01, 2021
Kagamin
Jun 01, 2021
Luís Ferreira
Jun 05, 2021
Iain Buclaw
Jun 05, 2021
Luís Ferreira
Jun 05, 2021
Iain Buclaw
Jun 06, 2021
Luís Ferreira
May 23, 2021

The phobos documentation states that the odbc modules:

etc.c.odbc.sql
etc.c.odbc.sqlext
etc.c.odbc.sqltypes
etc.c.odbc.sqlucode

will be removed in Feb 2022 and I should instead use core.sys.windows but ODBC isn't a Windows only thing so this seems a bit odd.

Changing the module locations wouldn't be so bad if changing my imports didn't also break my code.

Also all the modules in core.sys.windows have version (Windows) in them, including src/core/sys/windows/odbcinst.d:

https://github.com/dlang/druntime/commit/136ff8cd0c8ec300e9e1d177a94b336cf526d9ff#diff-b96154f02e79b2aab93b614dce927ff24deac3cfea629fb456bf8a95526bcbb8

which again isn't ideal seeing as I want to use odbc from Linux.

Can someone please rethink this planned removal of etc.c.odbc.*

May 23, 2021

Also, the commit that marked etc.c.odbc.* as scheduled for removal also deleted a ton of code and changed behaviour at the same time. Typically a deprecation is supposed to be done a good few releases before making breaking changes.

It was this commit in phobos that caused problems:

https://github.com/dlang/phobos/commit/88fd21e7368e8e2158a6ac75d43587c77886d6dd

May 23, 2021

On Sunday, 23 May 2021 at 01:22:19 UTC, singingbush wrote:

>

The phobos documentation states that the odbc modules:

etc.c.odbc.sql
etc.c.odbc.sqlext
etc.c.odbc.sqltypes
etc.c.odbc.sqlucode

will be removed in Feb 2022 and I should instead use core.sys.windows but ODBC isn't a Windows only thing so this seems a bit odd.

I'm guessing it's because Windows is the only OS that ships these header files as part of the base installation. On Linux, they're provided by a third-party package (e.g. on Debian it's libodbc).

May 26, 2021

On Sunday, 23 May 2021 at 03:31:27 UTC, Paul Backus wrote:

>

On Sunday, 23 May 2021 at 01:22:19 UTC, singingbush wrote:

>

The phobos documentation states that the odbc modules:

etc.c.odbc.sql
etc.c.odbc.sqlext
etc.c.odbc.sqltypes
etc.c.odbc.sqlucode

will be removed in Feb 2022 and I should instead use core.sys.windows but ODBC isn't a Windows only thing so this seems a bit odd.

I'm guessing it's because Windows is the only OS that ships these header files as part of the base installation. On Linux, they're provided by a third-party package (e.g. on Debian it's libodbc).

For me that doesn't indicate that it should be in core.sys.windows, it indicates that either:

A: The installers for other platforms need to ensure appropriate dependencies are installed
B: odbc has no business being in core D language and should just be something that needs building independently, probably as a dub package.

May 26, 2021

On Wednesday, 26 May 2021 at 10:35:16 UTC, singingbush wrote:

>

On Sunday, 23 May 2021 at 03:31:27 UTC, Paul Backus wrote:

>

On Sunday, 23 May 2021 at 01:22:19 UTC, singingbush wrote:

>

The phobos documentation states that the odbc modules:

etc.c.odbc.sql
etc.c.odbc.sqlext
etc.c.odbc.sqltypes
etc.c.odbc.sqlucode

will be removed in Feb 2022 and I should instead use core.sys.windows but ODBC isn't a Windows only thing so this seems a bit odd.

I'm guessing it's because Windows is the only OS that ships these header files as part of the base installation. On Linux, they're provided by a third-party package (e.g. on Debian it's libodbc).

For me that doesn't indicate that it should be in core.sys.windows, it indicates that either:

A: The installers for other platforms need to ensure appropriate dependencies are installed
B: odbc has no business being in core D language and should just be something that needs building independently, probably as a dub package.

I'd say B. As far as I am aware, none of the currently active Phobos contributors is interested in ODBC, so it is a disservice to our users to claim that this functionality is supported. It should be moved to separate repo maintained by people who actually use it.

May 26, 2021
On 5/26/21 7:13 AM, Petar Kirov [ZombineDev] wrote:
> On Wednesday, 26 May 2021 at 10:35:16 UTC, singingbush wrote:
>> On Sunday, 23 May 2021 at 03:31:27 UTC, Paul Backus wrote:
>>> On Sunday, 23 May 2021 at 01:22:19 UTC, singingbush wrote:
>>>> The phobos documentation states that the odbc modules:
>>>>
>>>> etc.c.odbc.sql
>>>> etc.c.odbc.sqlext
>>>> etc.c.odbc.sqltypes
>>>> etc.c.odbc.sqlucode
>>>>
>>>> will be removed in Feb 2022 and I should instead use `core.sys.windows` but ODBC isn't a Windows only thing so this seems a bit odd.
>>>
>>> I'm guessing it's because Windows is the only OS that ships these header files as part of the base installation. On Linux, they're provided by a third-party package (e.g. on Debian it's `libodbc`).
>>
>> For me that doesn't indicate that it should be in `core.sys.windows`, it indicates that either:
>>
>> A: The installers for other platforms need to ensure appropriate dependencies are installed
>> B: odbc has no business being in core D language and should just be something that needs building independently, probably as a dub package.
> 
> I'd say B. As far as I am aware, none of the currently active Phobos contributors is interested in ODBC, so it is a disservice to our users to claim that this functionality is supported. It should be moved to separate repo maintained by people who actually use it.

I agree.

A good path forward is for someone to create a replacement on dub, and then you can depend on that library.

-Steve
May 26, 2021
On Wednesday, 26 May 2021 at 12:03:06 UTC, Steven Schveighoffer wrote:
> On 5/26/21 7:13 AM, Petar Kirov [ZombineDev] wrote:
>> On Wednesday, 26 May 2021 at 10:35:16 UTC, singingbush wrote:
>>> [...]
>> 
>> I'd say B. As far as I am aware, none of the currently active Phobos contributors is interested in ODBC, so it is a disservice to our users to claim that this functionality is supported. It should be moved to separate repo maintained by people who actually use it.
>
> I agree.
>
> A good path forward is for someone to create a replacement on dub, and then you can depend on that library.
>
> -Steve

Seems like the way forward.
May 28, 2021

On Wednesday, 26 May 2021 at 12:03:06 UTC, Steven Schveighoffer wrote:

>

I agree.

A good path forward is for someone to create a replacement on dub, and then you can depend on that library.

-Steve

That's why I'm posting the problem ddbc does support odbc. It allows me to use MS SQL from a Linux system. It currently relies on etc.c.odbc and the proposed move to core.sys.windows completely breaks it.

Rather than have odbc move from etc.c to core.sys.windows, I feel it should be dropped alltogther and be given a longer time frame for ddbc to do away with reliance on etc.c.odbc. Feb 2022 doesn't give a lot of time, a change like this should much more notice.

It's things like this that stop people being able to use D in the workplace. The D introduces breaking changes far too often. It's completely unfair to put this demand on developers. I've got applications to work on, I don't want to have to spend so much time working around problems that have been created by the language itself.

May 31, 2021

On Friday, 28 May 2021 at 15:50:15 UTC, singingbush wrote:

>

It's completely unfair to put this demand on developers.

If I’m not mistaken this doesn’t seem to be a deprecation since the code was moved from its original location. A deprecation would have left the code in place in possibly a maintenance-only mode and remove it next February after the warning period.

I sympathize with your frustration here.

May 31, 2021
I see `etc.c.*` headers pretty useless in the standard library. The phylosophy of most of the standard libraries are: provide what "every programmer" might reasonably require when building a large collection of software and provide relatively easy-to-code facilities.

Moving this to the runtime library is totally not a solution to this problem, in my point of view. By definition, a runtime library shouldn't have bindings to a random library that a few people uses.

The right direction would be to consider doing an external and optional package for this type of bindings instead of forcing likely 90% of the users to download bindings such as sqlite and odbc.

-- 
Sincerely,
Luís Ferreira @ lsferreira.net



« First   ‹ Prev
1 2