[#37730] [Ruby 1.9 - Bug #4962][Open] come back gem_prelude! — Yusuke Endoh <mame@...>

24 messages 2011/07/02

[#37840] [Ruby 1.9 - Feature #4985][Open] Add %S[] support for making a list of symbols — Aaron Patterson <aaron@...>

23 messages 2011/07/07

[#37866] [Backport87 - Feature #4996][Open] About 1.8.7 EOL — Shyouhei Urabe <shyouhei@...>

22 messages 2011/07/08

[#37913] [Ruby 1.9 - Bug #5003][Open] Enumerator#next segfaults in OS X Lion (10.7) — Ganesh Gunasegaran <ganesh.gunas@...>

16 messages 2011/07/09

[#37917] [Ruby 1.9 - Feature #5005][Open] Provide convenient access to original methods — Lazaridis Ilias <ilias@...>

13 messages 2011/07/09

[#37932] [Ruby 1.9 - Feature #5008][Open] Equal rights for Hash (like Array, String, Integer, Float) — Suraj Kurapati <sunaku@...>

31 messages 2011/07/09

[#37936] [Ruby 1.9 - Feature #5010][Open] Add Slop(-like) in stdlib and deprecate current OptionParser API — Rodrigo Rosenfeld Rosas <rr.rosas@...>

29 messages 2011/07/09

[#37968] [Ruby 1.9 - Bug #5015][Open] method_added" is called in addition to "method_undefined — Lazaridis Ilias <ilias@...>

14 messages 2011/07/10

[#38096] [Ruby 1.9 - Feature #5033][Open] PATCH: 1.9: gc_mark_children: Avoid gc_mark() tail recursion, use goto again. — Kurt Stephens <ks.ruby@...>

14 messages 2011/07/16

[#38109] [Ruby 1.9 - Bug #5034][Open] C Source Code formatting — Lazaridis Ilias <ilias@...>

18 messages 2011/07/16

[#38171] [Ruby 1.9 - Bug #5047][Open] Segfault (most likely involving require) — Jack Christensen <jack@...>

21 messages 2011/07/18

[#38182] [Ruby 1.9 - Feature #5054][Open] Compress a sequence of ends — ANDO Yasushi ANDO <andyjpn@...>

68 messages 2011/07/19

[#38197] [Ruby 1.9 - Feature #5056][Open] About 1.9 EOL — Shyouhei Urabe <shyouhei@...>

39 messages 2011/07/19
[#38900] [Ruby 1.9 - Feature #5056] About 1.9 EOL — Shota Fukumori <sorah@...> 2011/08/10

[#38902] Re: [Ruby 1.9 - Feature #5056] About 1.9 EOL — Yukihiro Matsumoto <matz@...> 2011/08/10

Hi,

[#39048] Re: [Ruby 1.9 - Feature #5056] About 1.9 EOL — SASADA Koichi <ko1@...> 2011/08/22

Hi,

[#39055] Re: [Ruby 1.9 - Feature #5056] About 1.9 EOL — Lucas Nussbaum <lucas@...> 2011/08/23

On 23/08/11 at 06:50 +0900, SASADA Koichi wrote:

[#38295] [Ruby 1.9 - Feature #5064][Open] HTTP user-agent class — Eric Hodel <drbrain@...7.net>

15 messages 2011/07/21

[#38391] [Ruby 1.9 - Bug #5076][Open] Mac OS X Lion Support — Yui NARUSE <naruse@...>

17 messages 2011/07/22

[#38503] [Ruby 1.9 - Feature #5096][Open] offer Logger-compatibility for ext — Eric Wong <normalperson@...>

16 messages 2011/07/25

[#38510] [Ruby 1.9 - Feature #5097][Assigned] Supported platforms of Ruby 1.9.3 — Yui NARUSE <naruse@...>

42 messages 2011/07/26

[#38526] [Backport92 - Backport #5099][Open] Backport r31875 load path performance problem — Aaron Patterson <aaron@...>

19 messages 2011/07/26

[#38538] [Ruby 1.9 - Feature #5101][Open] allow optional timeout for TCPSocket.new — Eric Wong <normalperson@...>

15 messages 2011/07/27

[#38610] [Ruby 1.9 - Feature #5120][Open] String#split needs to be logical — Alexey Muranov <muranov@...>

18 messages 2011/07/30

[#38623] [Ruby 1.9 - Feature #5123][Open] Alias Hash 1.9 as OrderedHash — Alexey Muranov <muranov@...>

14 messages 2011/07/31

[ruby-core:37891] [Ruby 1.9 - Feature #4984] [TERMINOLOGY] Provide Document for Terminology (e.g. "Global Status")

From: Lazaridis Ilias <ilias@...>
Date: 2011-07-08 16:11:37 UTC
List: ruby-core #37891
Issue #4984 has been updated by Lazaridis Ilias.


Yukihiro Matsumoto wrote:
> =begin
> I am sorry but I don't understand what you mean by this issue.  

Nothing more than to provide a document, where some terminology which is used within the project is written down.

Note that (as always) this issue addresses the project, and not you individually.

> Both global status and local status has String.call_initialize in examples.  

"Global Status" was just an example (for inclusion into this document).

> Contradicting proposals should be rejected, until the OP make it clear.  

What is this now? An "issue-processing-rule"?

If you need further feed-back, clarification, just ask.

There is the "Feedback" status for this, no need to reject. I start to think that you invent new rules, just to be able to reject issues that I file immediately.

As to the "contradiction": There is no contradiction, I just demonstrate that there are different internal implementations of the same exposed api, which have influence on the scope of the status/state. Based on you definition, everything is "global status" and "maybe has problems with threads". But this is not the case. It's different if you have a global variable, a translation-unit bound variable, or and class-object-variable to carry the status.

> By the way, any behavior of String class is global status. I don't prohibit global status.  But adding new ((*modifiable*)) global status should be done carefully.

It is one thing to design carefully, it is another thing to reject with paranoia, or with unequal assessments.  That's what test-cases/suites are for: to avoid paranoia, words and bias.
 
> In addition, you state "thread introduces its own String class", but that's not how classes works in the language.

* I am aware that classes are global
* And I am aware that even the usage of a global $call_initialize would *not* have introduced any problems with threading. 

It was you that mentioned "possible problems with threads". 

So, I answered with an an hypothetical assumption, a phantasy's-worst-case scenario:
  * "even *if* a user *would* *somehow* (e.g. using his creativity) introduce an own String class object for a thread. the code would still not break".

(as you know, people do not use the language as you intended them to do).

> You have to understand the semantics of the language 

The language is "peanuts", nothing special to understand. The only real difficulties are the inconsistencies (like the one I deal with in #4893).

> before forcing us to adapt your understanding and expectation of the language-should-be, 

This is complete nonsense, I cannot and I do not force anything, especially not "language-should-be".

> before making proposals.

I've made here a very general proposal: the project should provide a document, in which terminology is defined.

-

This here would be the first addition to the document:

Yukihiro Matsumoto wrote: (within #4893)
> Class objects can be accessed from everywhere.  A modifiable attribute
> of a globally accessible object is global status, in my terminology.

Anyone could then make a research to see if the terminology is correct, thus it can be updated.

Even if you insist to use non-standard terminology, it should be mentioned in the document.

And whenever there are problems with terminology, the document is extended with other terms.
----------------------------------------
Feature #4984: [TERMINOLOGY] Provide Document for Terminology (e.g. "Global Status")
http://redmine.ruby-lang.org/issues/4984

Author: Lazaridis Ilias
Status: Rejected
Priority: Normal
Assignee: 
Category: Project
Target version: 


=begin

In order to avoid communication barriers, a document containing basic terminology should be provided (ideally directly within the source-code tree).

As an example (based on an communication problem within issue #4893), this issue here attempts to define the meaning of "Global Status" (Global State) and "Local Status" (Local State), thus the result can be included in the document.

Note that this is not language-specific, thus any existent standard definition should be used. A small overview, without any references to existent documentation:

* Global Status (synonym: Global State)
  * Example 1: $call_string_initialize = true|false
    * This is a global status, bound to a global variable, which is accessed directly
    * A thread which would introduce it's own String-class-object instance, would override the behaviour of another thread
  * Example 2: String.call_initialize = true|false 
    * using internally "static int call_initialize"
    * This is still a global status, bound to a translation-unit (string.c) variable
  * both examples work, if only one String-class-object is available
  * both examples would fail, if a program would produce somehow a 2nd String-class-object (e.g. within a thread)

-

* Local Status (synonym: Local State)
  * String.call_initialize = true|false
  * Using internally a class variable (either @@call_initialize_flag, or a C-low-level-flag, e.g. FL_USER18)
    * This is a class-local-status, bound to a class variable
"global status").
    * A thread which introduces in any way it's own String class, would *not* override the behaviour of the global string class, but only it's own, because "call_initialize" is a "Local Status".
  * IMPORTANT:
    * The message can be sent to the (String class) object everywhere where the String class is visible (= globally) 
      * This fact does *not* make "call_initialize" a "global status" (otherwise *any* behaviour of class String would be 



=end



-- 
http://redmine.ruby-lang.org

In This Thread