Forum: Ruby frozen string

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
910ff728be9bba9a818afb346524f8d1?d=identicon&s=25 David Coffield (rowantree)
on 2009-05-27 13:35
Hi,

Am trying to get rubyscript2exe to work and get the error shown below.

I've read the posts about this before (changing a line rubyscript2exe
etc) but none of the answers work for me. Can someone suggest what I'm
doing wrong? New to Ruby, by the way...

D:\rubyplay>ruby -v
ruby 1.8.6 (2008-08-11 patchlevel 287) [i386-mswin32]

D:\rubyplay>helloworld.rb
Hello World!

D:\rubyplay>ruby rubyscript2exe-0.5.3.rb helloworld.rb
rubyscript2exe-0.5.3.rb:621:in `replace': can't modify frozen string
(TypeError)
        from rubyscript2exe-0.5.3.rb:621
        from rubyscript2exe-0.5.3.rb:577:in `newlocation'
        from rubyscript2exe-0.5.3.rb:505:in `newlocation'
        from rubyscript2exe-0.5.3.rb:472:in `newlocation'
        from rubyscript2exe-0.5.3.rb:505:in `newlocation'
        from rubyscript2exe-0.5.3.rb:577:in `newlocation'
        from rubyscript2exe-0.5.3.rb:619

Many thanks,
Rowantree
753dcb78b3a3651127665da4bed3c782?d=identicon&s=25 Brian Candler (candlerb)
on 2009-05-27 17:02
Look at rubyscript2exe-0.5.3.rb line 612 perhaps?

At a guess, maybe it's doing something with $0. At some stage after
1.8.6p114, $0 was changed from a regular string to a frozen string. If
that's your problem, try changing

  $0.replace("foo")

to

  $0 = "foo"
910ff728be9bba9a818afb346524f8d1?d=identicon&s=25 David Coffield (rowantree)
on 2009-05-27 17:20
Brian Candler wrote:
> Look at rubyscript2exe-0.5.3.rb line 612 perhaps?
>
> At a guess, maybe it's doing something with $0. At some stage after
> 1.8.6p114, $0 was changed from a regular string to a frozen string. If
> that's your problem, try changing
>
>   $0.replace("foo")
>
> to
>
>   $0 = "foo"

Hi,

No... 'twasn't that unfortunately... thanks though.

Cheers,
David
This topic is locked and can not be replied to.