Project

General

Profile

Actions

Feature #5458

closed

DL should be removed

Added by kosaki (Motohiro KOSAKI) over 12 years ago. Updated over 9 years ago.

Status:
Closed
Target version:

Description

DL and fiddle are redundant. Moreover DL has no maintainer and its code is problematic.


Related issues 3 (0 open3 closed)

Related to Ruby master - Feature #8601: Win32API.rb long life planClosedwindowsActions
Related to Ruby master - Misc #10553: Ruby 2.2.0 release engeneeringClosednaruse (Yui NARUSE)Actions
Blocks Ruby master - Bug #6592: test_call_double(DL::TestDL) fails on ARM HardFPClosedtenderlovemaking (Aaron Patterson)06/14/2012Actions
Actions #1

Updated by naruse (Yui NARUSE) over 12 years ago

  • Project changed from 14 to Ruby master

Updated by mame (Yusuke Endoh) about 12 years ago

  • Target version set to 3.0
Actions #3

Updated by mame (Yusuke Endoh) about 12 years ago

  • Status changed from Open to Assigned
  • Assignee set to matz (Yukihiro Matsumoto)

In principle, nothing should be removed from 2.0 because of compatibility.
I cannot advocate DL and Syck, though...

--
Yusuke Endoh

Updated by Anonymous about 12 years ago

  • File noname added

On Tue, Mar 27, 2012 at 10:50:41PM +0900, mame (Yusuke Endoh) wrote:

Issue #5458 has been updated by mame (Yusuke Endoh).

Status changed from Open to Assigned
Assignee set to matz (Yukihiro Matsumoto)

In principle, nothing should be removed from 2.0 because of compatibility.
I cannot advocate DL and Syck, though...

Fiddle doesn't handle struct creation and formatting. That part of DL
is useful. I could port that to Fiddle, but I'm not sure why.

Now that libffi will work with windows, why don't we just remove the C
code that backs DL? Then we can keep the DL ruby code and forget about
the native code.

--
Aaron Patterson
http://tenderlovemaking.com/

Updated by matz (Yukihiro Matsumoto) almost 12 years ago

  • Assignee changed from matz (Yukihiro Matsumoto) to mame (Yusuke Endoh)

Even though DL can be emulated by using Fiddle in theory, I'd rather keep it for 2.0 for compatibility.
After 2.0, it's OK to replace DL. In that case, we can mark DL as obsolete.

Updated by mame (Yusuke Endoh) almost 12 years ago

  • Assignee changed from mame (Yusuke Endoh) to tenderlovemaking (Aaron Patterson)
  • Target version changed from 3.0 to 2.0.0

Okay, I'm willing to mark DL as obsolete in 2.0.
If anyone has an objection, please declare yourself ASAP.

Aaron, could you add a warning?
Then, please reassign back to me.

--
Yusuke Endoh

Updated by Anonymous almost 12 years ago

  • File noname added

On Sat, Apr 28, 2012 at 02:06:51AM +0900, mame (Yusuke Endoh) wrote:

Issue #5458 has been updated by mame (Yusuke Endoh).

Assignee changed from mame (Yusuke Endoh) to tenderlovemaking (Aaron Patterson)
Target version changed from 3.0 to 2.0.0

Okay, I'm willing to mark DL as obsolete in 2.0.
If anyone has an objection, please declare yourself ASAP.

Aaron, could you add a warning?
Then, please reassign back to me.

Yes I can add a warning! :-)

--
Aaron Patterson
http://tenderlovemaking.com/

Actions #8

Updated by naruse (Yui NARUSE) almost 12 years ago

  • File deleted (noname)
Actions #9

Updated by naruse (Yui NARUSE) almost 12 years ago

  • File deleted (noname)
Actions #10

Updated by mame (Yusuke Endoh) over 11 years ago

Aaron, did you add a warning?

--
Yusuke Endoh

Updated by mame (Yusuke Endoh) over 11 years ago

Aaron?

--
Yusuke Endoh

Updated by Anonymous over 11 years ago

On Sat, Nov 24, 2012 at 11:26:16AM +0900, mame (Yusuke Endoh) wrote:

Issue #5458 has been updated by mame (Yusuke Endoh).

Aaron?

Sorry, I'm working on this. I should have the deprecation warning added
some time tomorrow (UTC-7).

--
Aaron Patterson
http://tenderlovemaking.com/

Updated by zzak (zzak _) over 11 years ago

I wrote a patch for the deprecation notice: https://gist.github.com/4155983

Updated by tenderlovemaking (Aaron Patterson) over 11 years ago

  • Assignee changed from tenderlovemaking (Aaron Patterson) to mame (Yusuke Endoh)

DL is deprecated in trunk. To maintain backwards compatibility, I've moved some parts of DL to Fiddle. We should be able to remove ext/dl after 2.0 release.

Updated by sorah (Sorah Fukumori) over 11 years ago

  • Category set to ext
  • Target version changed from 2.0.0 to 2.6

Updated by ngoto (Naohisa Goto) almost 11 years ago

When DL is removed?

Updated by sikachu (Prem Sichanugrist) almost 11 years ago

@ngoto (Naohisa Goto) Looking from the target, seems like this will be removed on 2.1.0 (next minor)

Updated by ngoto (Naohisa Goto) almost 11 years ago

  • Target version changed from 2.6 to 2.1.0

Updated by luislavena (Luis Lavena) almost 11 years ago

tenderlovemaking (Aaron Patterson) wrote:

DL is deprecated in trunk. To maintain backwards compatibility, I've moved some parts of DL to Fiddle. We should be able to remove ext/dl after 2.0 release.

What parts of DL remain to be migrated to Fiddle?

With DL being deprecated, Win32API component and win32/registry will need to be changed or removed entirely.

Updated by zzak (zzak _) almost 11 years ago

The Win32 stuff is largely undocumented, but I remember ngoto-san
moved a lot of it to Fiddle already?

Updated by Anonymous almost 11 years ago

On Mon, May 20, 2013 at 07:55:11AM +0900, Zachary Scott wrote:

The Win32 stuff is largely undocumented, but I remember ngoto-san
moved a lot of it to Fiddle already?

Pretty much everything should be moved by now. I'll remove DL, see what
breaks, then port any remaining bits.

--
Aaron Patterson
http://tenderlovemaking.com/

Updated by luislavena (Luis Lavena) almost 11 years ago

zzak (Zachary Scott) wrote:

The Win32 stuff is largely undocumented, but I remember ngoto-san
moved a lot of it to Fiddle already?

I think you're correct, I see win32/registry and win32/resolv:

However I don't see Win32API:

https://github.com/ruby/ruby/blob/trunk/ext/dl/win32/lib/Win32API.rb

So I think the warning in 1.9.3 and 2.0.0 is misleading.

Thank you.

Updated by zzak (zzak _) about 10 years ago

It seems the win32 stuff was moved in r41936 and released in 2.1.0: https://github.com/ruby/ruby/commit/771d31a

Should we mark this ticket as closed 100%?

Updated by hsbt (Hiroshi SHIBATA) about 10 years ago

  • Target version changed from 2.1.0 to 2.2.0

Updated by ngoto (Naohisa Goto) almost 10 years ago

Updated by hsbt (Hiroshi SHIBATA) over 9 years ago

  • Assignee changed from mame (Yusuke Endoh) to tenderlovemaking (Aaron Patterson)

Hi, tenderlove.

Please remove DL from trunk.

Actions #27

Updated by Anonymous over 9 years ago

  • Status changed from Assigned to Closed
  • % Done changed from 0 to 100

Applied in changeset r48217.


  • ext/dl/*: remove DL as it is replaced by Fiddle.
    [Feature #5458] Thanks to Jonan Scheffler
    for this patch

  • test/dl/*: ditto.

Updated by vo.x (Vit Ondruch) over 9 years ago

  • Blocks Bug #6592: test_call_double(DL::TestDL) fails on ARM HardFP added

Updated by naruse (Yui NARUSE) over 9 years ago

  • Status changed from Closed to Assigned

As far as I understand, removal of ext/dl is done only if Ruby bundle libffi source like libyaml.
But libffi source is not bundled yet.
I'll revert r48217 soon.

Updated by naruse (Yui NARUSE) over 9 years ago

  • Related to Misc #10553: Ruby 2.2.0 release engeneering added

Updated by vo.x (Vit Ondruch) over 9 years ago

What would be the point of revet? Does Ruby need to bundle everything now? It is not the case for zlib, tcl/tk nor for OpenSSL, so why should Ruby bundle libffi? So to say, this is -1 for reverting r48217 and -1 for bundling libffi.

Actions #32

Updated by usa (Usaku NAKAMURA) over 9 years ago

Vit Ondruch wrote:

What would be the point of revet?

Because DL is stand alone but Fiddle is not.
To keep runnable some standard libraries, such as resolv.rb, we decided to bundle libffi if DL is removed.

Updated by headius (Charles Nutter) over 9 years ago

Well, DL depends on libdl, right?

Maybe we make it a default gem?

Updated by nobu (Nobuyoshi Nakada) over 9 years ago

Charles Nutter wrote:

Well, DL depends on libdl, right?

Yes on some platforms, no on others.
Usually dlopen() is a part of system-provided features, regardless of the library to be linked.
And different APIs are used on Windows, of course.

Maybe we make it a default gem?

One of the main problems is Win32API.
It's used very often.

Updated by hsbt (Hiroshi SHIBATA) over 9 years ago

  • Status changed from Assigned to Closed

DL has been removed at Ruby 2.2.0

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0