Clojure

Allow EdnReader to read foo// (CLJ-873 for EdnReader)

Details

  • Type: Enhancement Enhancement
  • Status: Closed Closed
  • Priority: Major Major
  • Resolution: Completed
  • Affects Version/s: Release 1.6
  • Fix Version/s: Release 1.6
  • Component/s: None
  • Labels:
  • Patch:
    Code
  • Approval:
    Ok

Description

The patch that has been applied in 1.6 for CLJ-873 predated the introduction of EdnReader, as such it only patched LispReader.

This patch makes the same change to allow foo// in EdnReader, and removes two constants in clojure.lang.RT that are not needed anymore after this patch.

To reproduce:

user=> (require 'clojure.edn)
user=> (defn / [& x] 42)
user=> (clojure.edn/read-string "(user// 4 2)")
RuntimeException Invalid token: user//  clojure.lang.Util.runtimeException (Util.java:219)

Approach: copy changes from LispReader in CLJ-873. After:

user=> (require 'clojure.edn)
nil
user=> (defn / [& x] 42)
WARNING: / already refers to: #'clojure.core// in namespace: user, being replaced by: #'user//
#'user//
user=> (clojure.edn/read-string "(user// 4 2)")
(user// 4 2)

Patch: 0001-Fix-CLJ-873-for-EdnReader-too.patch

Screened by: Alex Miller

Activity

Alex Miller made changes -
Field Original Value New Value
Approval Triaged [ 10120 ]
Nicola Mometto made changes -
Description This was a bonus cleanup patch that came in on CLJ-873 to further clean up some things that can be removed after the application of that patch. This patch came in after CLJ-873 had already been applied so I have broken it out into a new ticket.

Patch: 0001-Fix-CLJ-873-for-EdnReader-too.patch
The patch that has been applied for CLJ-873 predated the introduction of EdnReader, as such it only patched LispReader.
This patch fixes the issue for EdnReader, and removes two constants in clojure.lang.RT that are not needed anymore after this patch.

Patch: 0001-Fix-CLJ-873-for-EdnReader-too.patch
Summary Followup removal of SLASH and CLOJURE_SLASH after CLJ-873 Allow EdnReader to read foo// (CLJ-873 for EdnReader)
Alex Miller made changes -
Labels reader
Alex Miller made changes -
Labels reader edn reader
Rich Hickey made changes -
Approval Triaged [ 10120 ] Vetted [ 10003 ]
Fix Version/s Release 1.6 [ 10157 ]
Alex Miller made changes -
Approval Vetted [ 10003 ] Screened [ 10004 ]
Description The patch that has been applied for CLJ-873 predated the introduction of EdnReader, as such it only patched LispReader.
This patch fixes the issue for EdnReader, and removes two constants in clojure.lang.RT that are not needed anymore after this patch.

Patch: 0001-Fix-CLJ-873-for-EdnReader-too.patch
The patch that has been applied in 1.6 for CLJ-873 predated the introduction of EdnReader, as such it only patched LispReader.

This patch makes the same change to allow foo// in EdnReader, and removes two constants in clojure.lang.RT that are not needed anymore after this patch.

To reproduce:

{code}
user=> (require 'clojure.edn)
user=> (defn / [& x] 42)
user=> (clojure.edn/read-string "(user// 4 2)")
RuntimeException Invalid token: user// clojure.lang.Util.runtimeException (Util.java:219)
{code}

*Patch:* 0001-Fix-CLJ-873-for-EdnReader-too.patch

*Screened by:* Alex Miller
Alex Miller made changes -
Priority Minor [ 4 ] Major [ 3 ]
Alex Miller made changes -
Description The patch that has been applied in 1.6 for CLJ-873 predated the introduction of EdnReader, as such it only patched LispReader.

This patch makes the same change to allow foo// in EdnReader, and removes two constants in clojure.lang.RT that are not needed anymore after this patch.

To reproduce:

{code}
user=> (require 'clojure.edn)
user=> (defn / [& x] 42)
user=> (clojure.edn/read-string "(user// 4 2)")
RuntimeException Invalid token: user// clojure.lang.Util.runtimeException (Util.java:219)
{code}

*Patch:* 0001-Fix-CLJ-873-for-EdnReader-too.patch

*Screened by:* Alex Miller
The patch that has been applied in 1.6 for CLJ-873 predated the introduction of EdnReader, as such it only patched LispReader.

This patch makes the same change to allow foo// in EdnReader, and removes two constants in clojure.lang.RT that are not needed anymore after this patch.

To reproduce:

{code}
user=> (require 'clojure.edn)
user=> (defn / [& x] 42)
user=> (clojure.edn/read-string "(user// 4 2)")
RuntimeException Invalid token: user// clojure.lang.Util.runtimeException (Util.java:219)
{code}

*Patch:* clj-1238-2.diff

*Screened by:* Alex Miller
Attachment clj-1238-2.diff [ 12402 ]
Alex Miller made changes -
Description The patch that has been applied in 1.6 for CLJ-873 predated the introduction of EdnReader, as such it only patched LispReader.

This patch makes the same change to allow foo// in EdnReader, and removes two constants in clojure.lang.RT that are not needed anymore after this patch.

To reproduce:

{code}
user=> (require 'clojure.edn)
user=> (defn / [& x] 42)
user=> (clojure.edn/read-string "(user// 4 2)")
RuntimeException Invalid token: user// clojure.lang.Util.runtimeException (Util.java:219)
{code}

*Patch:* clj-1238-2.diff

*Screened by:* Alex Miller
The patch that has been applied in 1.6 for CLJ-873 predated the introduction of EdnReader, as such it only patched LispReader.

This patch makes the same change to allow foo// in EdnReader, and removes two constants in clojure.lang.RT that are not needed anymore after this patch.

To reproduce:

{code}
user=> (require 'clojure.edn)
user=> (defn / [& x] 42)
user=> (clojure.edn/read-string "(user// 4 2)")
RuntimeException Invalid token: user// clojure.lang.Util.runtimeException (Util.java:219)
{code}

Approach: copy changes from LispReader in CLJ-873. After:

{code}
user=> (require 'clojure.edn)
nil
user=> (defn / [& x] 42)
WARNING: / already refers to: #'clojure.core// in namespace: user, being replaced by: #'user//
#'user//
user=> (clojure.edn/read-string "(user// 4 2)")
(user// 4 2)
{code}

*Patch:* clj-1238-2.diff

*Screened by:* Alex Miller
Alex Miller made changes -
Description The patch that has been applied in 1.6 for CLJ-873 predated the introduction of EdnReader, as such it only patched LispReader.

This patch makes the same change to allow foo// in EdnReader, and removes two constants in clojure.lang.RT that are not needed anymore after this patch.

To reproduce:

{code}
user=> (require 'clojure.edn)
user=> (defn / [& x] 42)
user=> (clojure.edn/read-string "(user// 4 2)")
RuntimeException Invalid token: user// clojure.lang.Util.runtimeException (Util.java:219)
{code}

Approach: copy changes from LispReader in CLJ-873. After:

{code}
user=> (require 'clojure.edn)
nil
user=> (defn / [& x] 42)
WARNING: / already refers to: #'clojure.core// in namespace: user, being replaced by: #'user//
#'user//
user=> (clojure.edn/read-string "(user// 4 2)")
(user// 4 2)
{code}

*Patch:* clj-1238-2.diff

*Screened by:* Alex Miller
The patch that has been applied in 1.6 for CLJ-873 predated the introduction of EdnReader, as such it only patched LispReader.

This patch makes the same change to allow foo// in EdnReader, and removes two constants in clojure.lang.RT that are not needed anymore after this patch.

To reproduce:

{code}
user=> (require 'clojure.edn)
user=> (defn / [& x] 42)
user=> (clojure.edn/read-string "(user// 4 2)")
RuntimeException Invalid token: user// clojure.lang.Util.runtimeException (Util.java:219)
{code}

Approach: copy changes from LispReader in CLJ-873. After:

{code}
user=> (require 'clojure.edn)
nil
user=> (defn / [& x] 42)
WARNING: / already refers to: #'clojure.core// in namespace: user, being replaced by: #'user//
#'user//
user=> (clojure.edn/read-string "(user// 4 2)")
(user// 4 2)
{code}

*Patch:* 0001-Fix-CLJ-873-for-EdnReader-too.patch

*Screened by:* Alex Miller
Rich Hickey made changes -
Approval Screened [ 10004 ] Ok [ 10007 ]
Stuart Halloway made changes -
Resolution Completed [ 1 ]
Status Open [ 1 ] Closed [ 6 ]

People

Vote (0)
Watch (2)

Dates

  • Created:
    Updated:
    Resolved: