[#17198] enhancing Ruby error messages for out of the bound constant Fixnum? — Guillaume Cottenceau <gc@...>

Hi,

11 messages 2001/07/03

[#17206] /* */ comments — Dave Thomas <Dave@...>

43 messages 2001/07/04
[#17207] Re: /* */ comments — Stephen White <spwhite@...> 2001/07/04

On Wed, 4 Jul 2001, Dave Thomas wrote:

[#17251] Re: /* */ comments — Sean Chittenden <sean-ruby-talk@...> 2001/07/04

> Over on http://www.rubygarden.org, dv posted a patch to parse.y that

[#17268] Re: /* */ comments — matz@... (Yukihiro Matsumoto) 2001/07/05

Hi,

[#17212] Ruby 1.6.4 Win32 .exe installer question — A Bull in the China Shop of Life <feoh@...>

Folks;

11 messages 2001/07/04

[#17225] Re: /* */ comments — Arnaud Meuret <ameuret@...4you.com>

|From: Mark Slagell [mailto:ms@iastate.edu]

17 messages 2001/07/04

[#17240] Ruby Mascot/logo — "Kevin Powick" <kpowick@...>

Hi there.

14 messages 2001/07/04

[#17281] Inheritance — "Aleksei Guzev" <aleksei.guzev@...>

15 messages 2001/07/05
[#17282] Re: Inheritance — ts <decoux@...> 2001/07/05

>>>>> "A" == Aleksei Guzev <aleksei.guzev@bigfoot.com> writes:

[#17348] Adding a method to a class at the top-level — Guillaume Cottenceau <gc@...>

Comrades,

14 messages 2001/07/05

[#17482] Aliases for class methods — "HarryO" <harryo@...>

Say I wanted to write my own version of File#open that adds some

23 messages 2001/07/08

[#17511] Ruby on Slashdot — jweirich@...

Ruby is currently mentioned on Slashdot. I posted some references.

29 messages 2001/07/08
[#17512] Re: Ruby on Slashdot — Tobias Reif <tobiasreif@...> 2001/07/08

Interesting...

[#17518] Re: Ruby on Slashdot — matz@... (Yukihiro Matsumoto) 2001/07/09

Hi,

[#17519] Re: Ruby on Slashdot — "James (ruby-talk)" <ruby@...> 2001/07/09

> |I thought about that too; what about Ruby being a standard?

[#17525] Re: Ruby on Slashdot — matz@... (Yukihiro Matsumoto) 2001/07/09

Hi,

[#17536] Re: Ruby on Slashdot — David Alan Black <dblack@...> 2001/07/09

Hello --

[#17572] Re: Constants and Variables — "HarryO" <harryo@...>

> If you want objects that don't change, try Object#freeze,

25 messages 2001/07/10

[#17732] Re: Array#sort! returns nil when array empty — hfulton@...

> Array#sort! returns nil if the array is empty, whereas ri

32 messages 2001/07/12
[#17736] Re: Array#sort! returns nil when array empty — Paul Brannan <pbrannan@...> 2001/07/12

On Fri, 13 Jul 2001 hfulton@pop-server.austin.rr.com wrote:

[#17739] Re: Array#sort! returns nil when array empty — ts <decoux@...> 2001/07/12

>>>>> "P" == Paul Brannan <pbrannan@atdesk.com> writes:

[#17746] Re: Array#sort! returns nil when array empty — Paul Brannan <pbrannan@...> 2001/07/12

On Fri, 13 Jul 2001, ts wrote:

[#17747] What is Array#- ? — Jim Freeze <jim@...> 2001/07/12

While following the Array thread, I noticed the minus

[#17752] Re: What is Array#- ? — Dave Thomas <Dave@...> 2001/07/12

Jim Freeze <jim@freeze.org> writes:

[#17753] Re: What is Array#- ? — Jim Freeze <jim@...> 2001/07/12

On Fri, 13 Jul 2001, Dave Thomas wrote:

[#17833] Extending objects — "Aleksei Guzev" <aleksei.guzev@...>

16 messages 2001/07/14
[#17834] Ruby-newbie seeks help with Rubywin starting IRB — "Euan Mee" <lucid@...> 2001/07/14

Once I fire up Rubywin, and then invoke _R_uby _I_rb from the

[#17839] Re: Ruby-newbie seeks help with Rubywin starting IRB — A Bull in the China Shop of Life <feoh@...> 2001/07/14

At 07:05 PM 7/14/01 +0900, Euan Mee spewed forth:

[#17859] Re: Creating methods on the fly — "HarryO" <harryo@...>

I

18 messages 2001/07/15

[#17925] Movement in scripting language communities to integrate XML-RPC — gsemones@... (Guerry Semones)

Greetings,

20 messages 2001/07/16
[#17934] Re: Movement in scripting language communities to integrate XML-RPC — Tobias Reif <tobiasreif@...> 2001/07/16

"out of the box" by including

[#18018] Broadcasting data — "HarryO" <harryo@...>

Does someone have an example of broadcasting data around a network using

12 messages 2001/07/18

[#18023] [ANN] libxslt Rubified! — Wai-Sun Chia <waisun.chia@...>

Hello,

16 messages 2001/07/18
[#18024] Re: [ANN] libxslt Rubified! — TAKAHASHI Masayoshi <maki@...> 2001/07/18

Wai-Sun Chia <waisun.chia@compaq.com> wrote:

[#18100] Looking for Ruby programming exercises — Wayne Vucenic <wvucenic@...> 2001/07/19

I've been learning Ruby, mostly with the Pickaxe book, and it's going

[#18188] Newbie. Sinking fast. Please help. — Matt <matt@...>

I bought Programming Ruby a number of months back and finally have an opportunity to try out Ruby. However, I can't get it to build. Actually, that's not quite accurate. It builds fine. It won't pass 'make test'.

12 messages 2001/07/20

[#18193] Re: 99 bottles of beer — "Dat Nguyen" <thucdat@...>

18 messages 2001/07/20
[#18204] Re: 99 bottles of beer — Glen Starchman <glen@...> 2001/07/20

99.downto(0){|x|w=" on the wall";u="#{x!=0?eval(x.to_s):'no more'}

[#18306] Ruby as opposed to Python? — "Mark Nenadov" <mnenadov@...>

Hello. I have toyed with the idea of trying Ruby out for some time now.

118 messages 2001/07/22
[#18759] Re: Ruby as opposed to Python? — Paul Prescod <paulp@...> 2001/07/29

Yukihiro Matsumoto wrote:

[#18774] Re: Ruby as opposed to Python? — "Florian G. Pflug" <fgp@...> 2001/07/30

On Mon, Jul 30, 2001 at 05:58:22AM +0900, Paul Prescod wrote:

[#18393] Trouble Using FXRuby on cygwin/Windows NT — rgilbert1@... (Robbie Gilbert)

Hi,

10 messages 2001/07/23

[#18566] Which database should I use? — Urban Hafner <the-master-of-bass@...>

Hello everybody,

17 messages 2001/07/26
[#18575] Re: Which database should I use? — Urban Hafner <the-master-of-bass@...> 2001/07/26

[#18582] Re: Which database should I use? — Michael Neumann <neumann@...> 2001/07/26

Urban Hafner wrote:

[ruby-talk:18918] Re: Dynamic ORBit bindings for Ruby

From: senderista@... (Tobin Baker)
Date: 2001-07-31 22:16:23 UTC
List: ruby-talk #18918
Kenichi Komiya <kom@mail1.accsnet.ne.jp> wrote in message news:<gGB97.12858$WD1.528847@e420r-atl2.usenetserver.com>...

>I read the README of Dynamic-ORBit with great interest.  I am
>interested in partially because I want to use CORBA with Ruby,
>someday.  But mostly, my motivation is to pick up some idea to
>improve my Ruby IDL mapping.  But I am not working on CORBA.
>
>I am developing the rbXPCOM --- XPCOM Ruby language binding.
>
>    <prug>http://rbxpcom.mozdev.org</prug>
>
>XPCOM is an acronym of Cross Platform COM (Component Object
>Model) developed and used by the Mozilla project.  It uses a
>modified version of OMG IDL to define interface of components
>(They call it xpidl).  I see there are some design issues shared
>between Ruby CORBA effort and my project.
>
>I would like to cooperate to create better language mapping for
>Ruby and idl like interface.  Just reading your README already
>made me rethink the way I map idl interface to Ruby module.
>Maybe I will talk about this later.
>

It would be *very* helpful to me if someone could provide an English
translation of Dai's documentation of his IDL-Ruby mapping.  I don't
want needless duplication of effort, and I certainly don't want to
make design mistakes that could be avoided with enough knowledge of
other people's approaches.

>For now, I would like to share my experience to "constant" and
>"out parameter".
>
>  CONSTANT
>----------
>
>from your README
> > For at least two reasons, IDL constants are *not* mapped to Ruby
> > constants.  In the first place, as we all know, Ruby "constants" are not
> > really constant.  This is at variance with the "immutable" semantics
> > implicit in IDL.  In the second place, Ruby constants must begin with
> > a capital letter.  This is clearly an unreasonable requirement to place
> > on CORBA implementors who write their IDL with other languages in mind.
>
>The first argument is also applied to all Ruby programs.  I
>guess many Ruby programmers can live it.  For the second
>problem, my solution is simply upcase the first letter if it is
>lower case.

I thought of using this simple name-mangling but wanted to avoid it
because I like the idea of being able to write code with exactly the
same identifiers that appear in the IDL.  Now that I think about it, I
guess this wouldn't create name collisions in the IDL, since IDL
identifiers are treated as case-insensitive, so you couldn't legally
have, say, two constants named pi and PI in the same scope.  I should
have thought this through a bit more carefully.  Name mangling might
not be as bad as I had thought.

> > Therefore I implement constants as methods returning the value of the
> > constant.  E.g.,
> > //IDL
> > module Foo {
> > 	const float pi	= 3.14159265;
> > };
> >
> > #Ruby
> > module Foo
> >  def pi
> >    3.14159265
> >  end
> > end
>
>I actually tried this idea in version 0.0.1 of rbXPCOM.  I
>discarded, though.  Due to different scoping rules, it is more
>confusing than helpful, IMHO.
>
>module Foo
>   Pi = 3.14159265
>   def pi
>     3.14159265
>   end
>end
>
>class Bar
>   include Foo
>   p Pi
>   p pi    # error
>   def Bar.bar
>     p Pi
>     p pi  # error
>   end
>end

I thought I solved this by eval'ing "module_function :constant" right
after eval'ing the method def for the constant, but I was wrong.  I
guess I was thinking that all module functions of a module become
class methods of any class that includes the module, so that

class Bar
   include Foo
   p pi    # error
end

was equivalent to

class Bar
  def Bar.pi
    Foo.pi
  end
  p pi
end

but I see from running the code that I was wrong.
Maybe this is why there are two separate C functions,
define_module_function and define_singleton_method?  Thanks for
bringing this to my attention.

>And, if the initial letter of a idl constant is just happen to be
>upper case, you have another problem.
>
>module Foo
>   def Consant; 2 ; end
>end
>
>Foo::Constant     #=> NameError: uninitialized constant Constant at
Foo
>
>Above all, Ruby programmer will upset if Foo.constants returns [].

Yeah, I guess I just expected the client programmer to use "." to
qualify IDL constants rather than "::" (as in the example code), but
this is certainly not in accord with the POLS.

>
>  OUT PARAMETER
>---------------
>
>from README
> > //IDL
> > interface Foo {
> > 	long do_it(in long in_arg, out long out_arg, inout long
> >		inout_arg);
> > };
> >
> > #Ruby
> > #somehow get reference myFoo to Foo object
> > ret_val, out_arg, inout_arg_ret = myFoo.do_it(in_arg, inout_arg_par)
>
>I just looked the testcase code and gathered that you do not
>pack the returned value to an array if there is only one value
>to return.  Is it correct?  If so, rbXPCOM uses exactly same
>mapping.

Yes, this is correct.

>You have two experimental mappings to simulate call-by-reference
>semantics.  I am interested in how well they will turn out.  It
>seems they both suffer the disadvantage of requiring 'variables
>declaration', though.

This is only awkward for out parameters, since inout params must have
some initial value anyway.

>From some coding experience with Mozilla's components, I learned
>following things (at least for Mozilla's codebase).
>
>   * There are few method that actually return useful multiple values.
>     (Many methods return array or string and its size.  But the
>     size is redundant as Ruby object already know its size.)
>
>   * Use of inout is rather rare.
>
>So, I decided I do not need elaborate mapping to deal with the
>call-by-reference thing, at least for now.  I just sticked to
>what Python CORBA mapping is using for years.

I agree that inout is fairly rare, and that use of it in IDL usually
indicates poor design.  (I don't think I would ever use it myself.)  I
think it's mainly in the IDL spec because C and C++ were the original
target languages, and call-by-reference is the normal way to simulate
multiple return values in those languages.  But I put this stuff in
largely for the "coolness factor", and I don't see any reason to
remove them, since they shouldn't be a problem to anyone who doesn't
explicitly use them (i.e. either include "inout" as the last parameter
or supply a block with the method call).
 
>Best Regards,
>Kenichi Komiya.

Thanks for the feedback.  It's given me a lot to think about :-)

In This Thread