Project

General

Profile

Actions

Bug #16988

closed

Kernel.load loads file from current directory without '.' in path

Added by TheSmartnik (Nikita Misharin) almost 4 years ago. Updated over 3 years ago.

Status:
Closed
Assignee:
-
Target version:
-
[ruby-core:98962]

Description

Ruby allows to load files using Kernel.load without explicitly specifying the relative path with . I'm not sure it's a bug or a feature, but since documentation in master doesn't say anything about it and the behavior differs from require where it was changed intentionally, I consider it a bug

Reproduction steps

  1. Have a file (file.rb) in a directory
  2. Start irb session in the directory
  3. Load a file: load 'file.rb'

Tested in versions

  • 2.7.1
  • 2.6.6
  • 2.5.3

Updated by nobu (Nobuyoshi Nakada) almost 4 years ago

I don’t this is an implementation bug, but a documentation issue.

Updated by TheSmartnik (Nikita Misharin) over 3 years ago

nobu (Nobuyoshi Nakada) wrote in #note-1:

I don’t this is an implementation bug, but a documentation issue.

Shouldn't behavior be consistent with require, though?

Updated by jeremyevans0 (Jeremy Evans) over 3 years ago

TheSmartnik (Nikita Misharin) wrote in #note-2:

nobu (Nobuyoshi Nakada) wrote in #note-1:

I don’t this is an implementation bug, but a documentation issue.

Shouldn't behavior be consistent with require, though?

I don't think so. load has always been able to load files that exist relative to the current directory, and require has not. Technically, in Ruby <1.9, require worked similarly because '.' was in the default load path). load and require are different in many other ways, and changing this to increase the consistency between them doesn't make sense to me.

Changing load's behavior would definitely break things. I agree with @nobu (Nobuyoshi Nakada) that this is a documentation issue, and I'll try to update the documentation to explain it.

Actions #4

Updated by jeremyevans (Jeremy Evans) over 3 years ago

  • Status changed from Open to Closed

Applied in changeset git|e1bbb9ea9ce205320267783960cfb2e9215d5f52.


Document that Kernel#load will load relative to current directory [ci skip]

Update and format the Kernel#load documentation to separate the
three cases (absolute path, explicit relative path, other), and
also document that it raises LoadError on failure.

Fixes [Bug #16988]

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0