ruby-core@ruby-lang.org archive (unofficial mirror)
 help / color / mirror / Atom feed
* [ruby-core:97034] [Ruby master Feature#16602] Add support for `frozen_string_literals` to eval.
@ 2020-02-01  7:29 samuel
  2020-02-01 11:41 ` [ruby-core:97037] " samuel
  2020-02-02  4:39 ` [ruby-core:97042] " samuel
  0 siblings, 2 replies; 3+ messages in thread
From: samuel @ 2020-02-01  7:29 UTC (permalink / raw
  To: ruby-core

Issue #16602 has been reported by ioquatix (Samuel Williams).

----------------------------------------
Feature #16602: Add support for `frozen_string_literals` to eval.
https://bugs.ruby-lang.org/issues/16602

* Author: ioquatix (Samuel Williams)
* Status: Open
* Priority: Normal
----------------------------------------
Would it make sense for `eval(..., frozen_string_literal: true)` to exist?



-- 
https://bugs.ruby-lang.org/

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [ruby-core:97037] [Ruby master Feature#16602] Add support for `frozen_string_literals` to eval.
  2020-02-01  7:29 [ruby-core:97034] [Ruby master Feature#16602] Add support for `frozen_string_literals` to eval samuel
@ 2020-02-01 11:41 ` samuel
  2020-02-02  4:39 ` [ruby-core:97042] " samuel
  1 sibling, 0 replies; 3+ messages in thread
From: samuel @ 2020-02-01 11:41 UTC (permalink / raw
  To: ruby-core

Issue #16602 has been updated by ioquatix (Samuel Williams).


Yes, it does, but it:

- Requires modification of the string which is sometimes messy.
- Requires modification of line numbers if you want to do it in a way which is not visible to the user.

I think any option that can be provided on the comment line at the start should also be an option to `eval`, and `*_eval`. e.g. `coding` too.

----------------------------------------
Feature #16602: Add support for `frozen_string_literals` to eval.
https://bugs.ruby-lang.org/issues/16602#change-84130

* Author: ioquatix (Samuel Williams)
* Status: Open
* Priority: Normal
----------------------------------------
Would it make sense for `eval(..., frozen_string_literal: true)` to exist?



-- 
https://bugs.ruby-lang.org/

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [ruby-core:97042] [Ruby master Feature#16602] Add support for `frozen_string_literals` to eval.
  2020-02-01  7:29 [ruby-core:97034] [Ruby master Feature#16602] Add support for `frozen_string_literals` to eval samuel
  2020-02-01 11:41 ` [ruby-core:97037] " samuel
@ 2020-02-02  4:39 ` samuel
  1 sibling, 0 replies; 3+ messages in thread
From: samuel @ 2020-02-02  4:39 UTC (permalink / raw
  To: ruby-core

Issue #16602 has been updated by ioquatix (Samuel Williams).


@sawa your argument convince me that we don't need this feature then. But it's not always the case that "You are adding specification to a piece of code that did not have such specification."

But, I'm at a loss how to fix https://github.com/rack/rack/pull/1544

User code may contain:

```
# frozen_string_literal: true
```

But we end up calling eval like this:

```
eval "Rack::Builder.new {\n" + builder_script + "\n}.to_app",
        TOPLEVEL_BINDING, file, 0
```

So we end up with a kludge of:

```
Rack::Builder.new {
# frozen_string_literal: true
...
}
```

Which obviously isn't going to work correctly. The only other solution I can think of is to try and match comments in the user code, extract them outside the block, etc. Messy.

----------------------------------------
Feature #16602: Add support for `frozen_string_literals` to eval.
https://bugs.ruby-lang.org/issues/16602#change-84135

* Author: ioquatix (Samuel Williams)
* Status: Open
* Priority: Normal
----------------------------------------
Would it make sense for `eval(..., frozen_string_literal: true)` to exist?



-- 
https://bugs.ruby-lang.org/

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2020-02-02  4:40 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-02-01  7:29 [ruby-core:97034] [Ruby master Feature#16602] Add support for `frozen_string_literals` to eval samuel
2020-02-01 11:41 ` [ruby-core:97037] " samuel
2020-02-02  4:39 ` [ruby-core:97042] " samuel

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).