Permalink
Browse files

* re.c (Init_Regexp): to_s to be alias to inspect.

* parse.y (yylex): should support 'keyword='.

* ruby.c (proc_options): should not adjust argc/argv if -e option
  is supplied.


git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@1727 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
  • Loading branch information...
matz committed Sep 5, 2001
1 parent 4c0e82c commit 1ffef20d0a1fc249929c25ff1751405ac12e6d64
Showing with 232 additions and 47 deletions.
  1. +19 −0 ChangeLog
  2. +5 −5 ToDo
  3. +164 −3 ext/socket/socket.c
  4. +3 −3 ext/tk/lib/tk.rb
  5. +10 −10 ext/tk/lib/tktext.rb
  6. +2 −1 io.c
  7. +25 −22 parse.y
  8. +2 −1 re.c
  9. +2 −2 version.h
View
@@ -1,7 +1,20 @@
+Tue Sep 4 01:03:18 2001 Yukihiro Matsumoto <matz@ruby-lang.org>
+
+ * re.c (Init_Regexp): to_s to be alias to inspect.
+
+Mon Sep 3 22:46:59 2001 Yukihiro Matsumoto <matz@ruby-lang.org>
+
+ * parse.y (yylex): should support 'keyword='.
+
Mon Sep 3 20:26:08 2001 Nobuyoshi Nakada <nobu.nakada@nifty.ne.jp>
* intern.h (rb_find_file_ext): changed from rb_find_file_noext().
+Mon Sep 3 15:12:49 2001 Yukihiro Matsumoto <matz@ruby-lang.org>
+
+ * ruby.c (proc_options): should not adjust argc/argv if -e option
+ is supplied.
+
Mon Sep 3 14:11:17 2001 Akinori MUSHA <knu@iDaemons.org>
* error.c: unbreak the build on *BSD with gcc 3.0.1 by removing
@@ -171,6 +184,12 @@ Fri Aug 17 00:49:51 2001 Yukihiro Matsumoto <matz@ruby-lang.org>
* parse.y (parse_regx): handle backslash escaping of delimiter here.
+Thu Aug 16 23:03:40 2001 Koji Arai <JCA02266@nifty.ne.jp>
+
+ * io.c: prevent recursive malloc calls on NEC UX/4800.
+
+ * ext/socket/socket.c: ditto.
+
Thu Aug 16 13:54:04 2001 Usaku Nakamura <usa@ruby-lang.org>
* ext/socket/socket.c (s_recvfrom): fix typo.
View
10 ToDo
@@ -50,7 +50,6 @@ Hacking Interpreter
* Built-in Interactive Ruby.
* trap every method invocation, which can be enabled by e.g. trap_call :method.
* unify Errno exceptions of same errno, or new exception comparison scheme.
-* signal list (Signal::trap, Signal::list??).
* 2.times{|i| if i==0 then a = 15 else puts eval("a") end} should print nil.
Standard Libraries
@@ -63,7 +62,9 @@ Standard Libraries
- Process::Status
- File::lchown, File::lchmod; xxx - still need work for non existing platforms
- move Time::times to Process.
-* Enumerable#sort_by for Schwartzian transformation
+- Enumerable#sort_by for Schwartzian transformation
+- fork_and_kill_other_threads.
+- signal list (Signal::trap, Signal::list).
* String#scanf(?)
* Object#fmt(?)
* Integer#{bin,oct,hex,heX}
@@ -77,17 +78,16 @@ Standard Libraries
* introduce Boolean class; super of TrueClass, FalseClass
* synchronized method - synchronized{...}, synchronized :foo, :bar
* Array#&, Array#| to allow duplication. ???
-* fork_and_kill_other_threads.
* way to specify immortal (fork endurance) thread;
* or raise ForkException to every thread but fork caller.
* Hash::new{default} or recommend Hash#fetch?
* new user-defined marshal scheme. _dump(dumper), _load(restorer)
-* warn, warning for Ruby level
* hash etc. should handle self referenceing array/hash
* move NameError under StandardError.
* library to load per-user profile seeking .ruby_profile or ruby.ini file.
-* warning framework
+* warning framework (warn, warning for Ruby level)
* marshal should not depend on sprintf/strtod (works bad for locale).
+* ternary arg - a.pow(b,c) == a**b%c
Extension Libraries
View
@@ -437,8 +437,8 @@ s_recvfrom(sock, argc, argv, from)
str = rb_tainted_str_new(0, NUM2INT(len));
- rb_thread_wait_fd(fd);
retry:
+ rb_thread_wait_fd(fd);
TRAP_BEG;
RSTRING(str)->len = recvfrom(fd, RSTRING(str)->ptr, RSTRING(str)->len, flags,
(struct sockaddr*)buf, &alen);
@@ -454,7 +454,6 @@ s_recvfrom(sock, argc, argv, from)
#if EAGAIN != EWOULDBLOCK
case EAGAIN:
#endif
- rb_thread_wait_fd(fd);
goto retry;
}
rb_sys_fail("recvfrom(2)");
@@ -1102,9 +1101,13 @@ s_accept(class, fd, sockaddr, len)
rb_secure(3);
retry:
rb_thread_wait_fd(fd);
+#if defined(_nec_ews)
+ fd2 = accept(fd, sockaddr, len);
+#else
TRAP_BEG;
fd2 = accept(fd, sockaddr, len);
TRAP_END;
+#endif
if (fd2 < 0) {
switch (errno) {
case EMFILE:
@@ -1121,7 +1124,6 @@ s_accept(class, fd, sockaddr, len)
#if EAGAIN != EWOULDBLOCK
case EAGAIN:
#endif
- rb_thread_wait_fd(fd);
goto retry;
}
rb_sys_fail(0);
@@ -2313,6 +2315,165 @@ Init_socket()
sock_define_const("SOL_UDP", SOL_UDP);
#endif
+#ifdef IPPROTO_IP
+ sock_define_const("IPPROTO_IP", IPPROTO_IP);
+#else
+ sock_define_const("IPPROTO_IP", 0);
+#endif
+#ifdef IPPROTO_ICMP
+ sock_define_const("IPPROTO_ICMP", IPPROTO_ICMP);
+#else
+ sock_define_const("IPPROTO_ICMP", 1);
+#endif
+#ifdef IPPROTO_IGMP
+ sock_define_const("IPPROTO_IGMP", IPPROTO_IGMP);
+#endif
+#ifdef IPPROTO_GGP
+ sock_define_const("IPPROTO_GGP", IPPROTO_GGP);
+#endif
+#ifdef IPPROTO_TCP
+ sock_define_const("IPPROTO_TCP", IPPROTO_TCP);
+#else
+ sock_define_const("IPPROTO_TCP", 6);
+#endif
+#ifdef IPPROTO_EGP
+ sock_define_const("IPPROTO_EGP", IPPROTO_EGP);
+#endif
+#ifdef IPPROTO_PUP
+ sock_define_const("IPPROTO_PUP", IPPROTO_PUP);
+#endif
+#ifdef IPPROTO_UDP
+ sock_define_const("IPPROTO_UDP", IPPROTO_UDP);
+#else
+ sock_define_const("IPPROTO_UDP", 17);
+#endif
+#ifdef IPPROTO_IDP
+ sock_define_const("IPPROTO_IDP", IPPROTO_IDP);
+#endif
+#ifdef IPPROTO_HELLO
+ sock_define_const("IPPROTO_HELLO", IPPROTO_HELLO);
+#endif
+#ifdef IPPROTO_ND
+ sock_define_const("IPPROTO_ND", IPPROTO_ND);
+#endif
+#ifdef IPPROTO_TP
+ sock_define_const("IPPROTO_TP", IPPROTO_TP);
+#endif
+#ifdef IPPROTO_XTP
+ sock_define_const("IPPROTO_XTP", IPPROTO_XTP);
+#endif
+#ifdef IPPROTO_EON
+ sock_define_const("IPPROTO_EON", IPPROTO_EON);
+#endif
+#ifdef IPPROTO_BIP
+ sock_define_const("IPPROTO_BIP", IPPROTO_BIP);
+#endif
+/**/
+#ifdef IPPROTO_RAW
+ sock_define_const("IPPROTO_RAW", IPPROTO_RAW);
+#else
+ sock_define_const("IPPROTO_RAW", 255);
+#endif
+#ifdef IPPROTO_MAX
+ sock_define_const("IPPROTO_MAX", IPPROTO_MAX);
+#endif
+
+ /* Some port configuration */
+#ifdef IPPORT_RESERVED
+ sock_define_const("IPPORT_RESERVED", IPPORT_RESERVED);
+#else
+ sock_define_const("IPPORT_RESERVED", 1024);
+#endif
+#ifdef IPPORT_USERRESERVED
+ sock_define_const("IPPORT_USERRESERVED", IPPORT_USERRESERVED);
+#else
+ sock_define_const("IPPORT_USERRESERVED", 5000);
+#endif
+ /* Some reserved IP v.4 addresses */
+#ifdef INADDR_ANY
+ sock_define_const("INADDR_ANY", INADDR_ANY);
+#else
+ sock_define_const("INADDR_ANY", 0x00000000);
+#endif
+#ifdef INADDR_BROADCAST
+ sock_define_const("INADDR_BROADCAST", INADDR_BROADCAST);
+#else
+ sock_define_const("INADDR_BROADCAST", 0xffffffff);
+#endif
+#ifdef INADDR_LOOPBACK
+ sock_define_const("INADDR_LOOPBACK", INADDR_LOOPBACK);
+#else
+ sock_define_const("INADDR_LOOPBACK", 0x7F000001);
+#endif
+#ifdef INADDR_UNSPEC_GROUP
+ sock_define_const("INADDR_UNSPEC_GROUP", INADDR_UNSPEC_GROUP);
+#else
+ sock_define_const("INADDR_UNSPEC_GROUP", 0xe0000000);
+#endif
+#ifdef INADDR_ALLHOSTS_GROUP
+ sock_define_const("INADDR_ALLHOSTS_GROUP", INADDR_ALLHOSTS_GROUP);
+#else
+ sock_define_const("INADDR_ALLHOSTS_GROUP", 0xe0000001);
+#endif
+#ifdef INADDR_MAX_LOCAL_GROUP
+ sock_define_const("INADDR_MAX_LOCAL_GROUP", INADDR_MAX_LOCAL_GROUP);
+#else
+ sock_define_const("INADDR_MAX_LOCAL_GROUP", 0xe00000ff);
+#endif
+#ifdef INADDR_NONE
+ sock_define_const("INADDR_NONE", INADDR_NONE);
+#else
+ sock_define_const("INADDR_NONE", 0xffffffff);
+#endif
+ /* IP [gs]etsockopt options */
+#ifdef IP_OPTIONS
+ sock_define_const("IP_OPTIONS", IP_OPTIONS);
+#endif
+#ifdef IP_HDRINCL
+ sock_define_const("IP_HDRINCL", IP_HDRINCL);
+#endif
+#ifdef IP_TOS
+ sock_define_const("IP_TOS", IP_TOS);
+#endif
+#ifdef IP_TTL
+ sock_define_const("IP_TTL", IP_TTL);
+#endif
+#ifdef IP_RECVOPTS
+ sock_define_const("IP_RECVOPTS", IP_RECVOPTS);
+#endif
+#ifdef IP_RECVRETOPTS
+ sock_define_const("IP_RECVRETOPTS", IP_RECVRETOPTS);
+#endif
+#ifdef IP_RECVDSTADDR
+ sock_define_const("IP_RECVDSTADDR", IP_RECVDSTADDR);
+#endif
+#ifdef IP_RETOPTS
+ sock_define_const("IP_RETOPTS", IP_RETOPTS);
+#endif
+#ifdef IP_MULTICAST_IF
+ sock_define_const("IP_MULTICAST_IF", IP_MULTICAST_IF);
+#endif
+#ifdef IP_MULTICAST_TTL
+ sock_define_const("IP_MULTICAST_TTL", IP_MULTICAST_TTL);
+#endif
+#ifdef IP_MULTICAST_LOOP
+ sock_define_const("IP_MULTICAST_LOOP", IP_MULTICAST_LOOP);
+#endif
+#ifdef IP_ADD_MEMBERSHIP
+ sock_define_const("IP_ADD_MEMBERSHIP", IP_ADD_MEMBERSHIP);
+#endif
+#ifdef IP_DROP_MEMBERSHIP
+ sock_define_const("IP_DROP_MEMBERSHIP", IP_DROP_MEMBERSHIP);
+#endif
+#ifdef IP_DEFAULT_MULTICAST_TTL
+ sock_define_const("IP_DEFAULT_MULTICAST_TTL", IP_DEFAULT_MULTICAST_TTL);
+#endif
+#ifdef IP_DEFAULT_MULTICAST_LOOP
+ sock_define_const("IP_DEFAULT_MULTICAST_LOOP", IP_DEFAULT_MULTICAST_LOOP);
+#endif
+#ifdef IP_MAX_MEMBERSHIPS
+ sock_define_const("IP_MAX_MEMBERSHIPS", IP_MAX_MEMBERSHIPS);
+#endif
#ifdef SO_DEBUG
sock_define_const("SO_DEBUG", SO_DEBUG);
#endif
View
@@ -2233,7 +2233,7 @@ def []=(id, val)
def cget(slot)
case slot
- when 'text', 'label', 'show', 'data', 'flie'
+ when 'text', 'label', 'show', 'data', 'file'
tk_call path, 'cget', "-#{slot}"
else
tk_tcl2ruby tk_call path, 'cget', "-#{slot}"
@@ -2273,7 +2273,7 @@ def configinfo(slot = nil)
else
if slot
case slot
- when 'text', 'label', 'show', 'data', 'flie'
+ when 'text', 'label', 'show', 'data', 'file'
conf = tk_split_simplelist(tk_send('configure', "-#{slot}") )
else
conf = tk_split_list(tk_send('configure', "-#{slot}") )
@@ -2285,7 +2285,7 @@ def configinfo(slot = nil)
conf = tk_split_simplelist(conflist)
conf[0] = conf[0][1..-1]
case conf[0]
- when 'text', 'label', 'show', 'data', 'flie'
+ when 'text', 'label', 'show', 'data', 'file'
else
if conf[3]
if conf[3].index('{')
View
@@ -279,7 +279,7 @@ def tag_bindinfo(tag, context=nil)
def tag_cget(tag, key)
case key
- when 'text', 'label', 'show', 'data', 'flie'
+ when 'text', 'label', 'show', 'data', 'file'
tk_call @path, 'tag', 'cget', tag, "-#{key}"
else
tk_tcl2ruby tk_call @path, 'tag', 'cget', tag, "-#{key}"
@@ -308,7 +308,7 @@ def tag_configure(tag, key, val=None)
def tag_configinfo(tag, key=nil)
if key
case key
- when 'text', 'label', 'show', 'data', 'flie'
+ when 'text', 'label', 'show', 'data', 'file'
conf = tk_split_simplelist(tk_send('tag','configure',tag,"-#{key}"))
else
conf = tk_split_list(tk_send('tag','configure',tag,"-#{key}"))
@@ -320,7 +320,7 @@ def tag_configinfo(tag, key=nil)
conf = tk_split_simplelist(conflist)
conf[0] = conf[0][1..-1]
case conf[0]
- when 'text', 'label', 'show', 'data', 'flie'
+ when 'text', 'label', 'show', 'data', 'file'
else
if conf[3]
if conf[3].index('{')
@@ -712,7 +712,7 @@ def []=(key,val)
def cget(key)
case key
- when 'text', 'label', 'show', 'data', 'flie'
+ when 'text', 'label', 'show', 'data', 'file'
tk_call @t.path, 'tag', 'cget', @id, "-#{key}"
else
tk_tcl2ruby tk_call @t.path, 'tag', 'cget', @id, "-#{key}"
@@ -896,7 +896,7 @@ def []=(slot, value)
def cget(slot)
case slot
- when 'text', 'label', 'show', 'data', 'flie'
+ when 'text', 'label', 'show', 'data', 'file'
tk_call @t.path, 'window', 'cget', @index, "-#{slot}"
else
tk_tcl2ruby tk_call @t.path, 'window', 'cget', @index, "-#{slot}"
@@ -947,7 +947,7 @@ def create=(value)
def configinfo(slot = nil)
if slot
case slot
- when 'text', 'label', 'show', 'data', 'flie'
+ when 'text', 'label', 'show', 'data', 'file'
conf = tk_split_simplelist(tk_call @t.path, 'window', 'configure',
@index, "-#{slot}")
else
@@ -962,7 +962,7 @@ def configinfo(slot = nil)
conf = tk_split_simplelist(conflist)
conf[0] = conf[0][1..-1]
case conf[0]
- when 'text', 'label', 'show', 'data', 'flie'
+ when 'text', 'label', 'show', 'data', 'file'
else
if conf[3]
if conf[3].index('{')
@@ -1017,7 +1017,7 @@ def []=(slot, value)
def cget(slot)
case slot
- when 'text', 'label', 'show', 'data', 'flie'
+ when 'text', 'label', 'show', 'data', 'file'
tk_call @t.path, 'image', 'cget', @index, "-#{slot}"
else
tk_tcl2ruby tk_call @t.path, 'image', 'cget', @index, "-#{slot}"
@@ -1046,7 +1046,7 @@ def image=(value)
def configinfo(slot = nil)
if slot
case slot
- when 'text', 'label', 'show', 'data', 'flie'
+ when 'text', 'label', 'show', 'data', 'file'
conf = tk_split_simplelist(tk_call @t.path, 'image', 'configure',
@index, "-#{slot}")
else
@@ -1061,7 +1061,7 @@ def configinfo(slot = nil)
conf = tk_split_simplelist(conflist)
conf[0] = conf[0][1..-1]
case conf[0]
- when 'text', 'label', 'show', 'data', 'flie'
+ when 'text', 'label', 'show', 'data', 'file'
else
if conf[3]
if conf[3].index('{')
Oops, something went wrong.

0 comments on commit 1ffef20

Please sign in to comment.