Project

General

Profile

Bug #16988

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

Added by TheSmartnik (Nikita Misharin) 4 months ago. Updated 4 months ago.

Status:
Closed
Priority:
Normal
Assignee:
-
Target version:
-
[ruby-core:99048]

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) 4 months ago

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

Updated by TheSmartnik (Nikita Misharin) 4 months 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) 4 months 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.

#4

Updated by jeremyevans (Jeremy Evans) 4 months 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]

Also available in: Atom PDF