+100 I do not think that there should be restrictions on the number of :: separators. Modified to allow #A::B::Object etc.. ------------------------------- isValidGlobalName self ifEmpty: [ ^ false ]. "reserverd default names" self = #NameOfSubclass ifTrue: [ ^ false ]. self = #TNameOfTrait ifTrue: [ ^ false ]. (self splitOn: '::') allSatisfy: [: part | Character supportsNonASCII ifTrue: [ (part first isLetter and: [ part first isUppercase]) and: [ part allSatisfy: [:character | character isAlphaNumeric or: [ character = $_ ]]] ] ifFalse: [ (part first between: $A and: $Z) and: [ part allSatisfy: [:character | (character between: $a and: $z) or: [ (character between: $A and: $Z) or: [ (character between: $0 and: $9) or: [ character = $_]]]]] ] ] ------------------------------------- As long as the :: only serve as a visual separator between "namespace(s)" and class name then it should not be harder much more harder than to do a #copyReplaceAll: '::' with: '' when filing in|out the class to use in a system that do not allow :: in class names. Best regards, Henrik -----Opprinnelig melding----- Fra: Pharo-dev [mailto:pharo-dev-bounces@lists.pharo.org] PÃ¥ vegne av Torsten Bergmann Sendt: 02 January 2017 12:57 Til: Pharo Development List <pharo-dev@lists.pharo.org> Emne: Re: [Pharo-dev] :: Separator in class names First of all: happy new year to all Pharo supporters! Not many of you answered this thread in 2016. Maybe I have more luck in 2017 ;) So please tell me about the requested change of #isValidGlobalName to allow an optional separator in class names. I already communicated possible usages and still do not share the fears of Dale that we easily get unportable code with that. I guess it will allow us to experiment much easier. Thanks for taking the time to response and share your own thoughts! Bye Torsten