discuss-gnustep
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Gworkspace with non-fragile abi, etc?


From: Lee, Seong-Gu
Subject: Gworkspace with non-fragile abi, etc?
Date: Wed, 21 Aug 2013 15:50:27 +0900
User-agent: Mozilla/5.0 (X11; Linux i686; rv:17.0) Gecko/20130803 Thunderbird/17.0.8

Dear GNUstep developers and users,

 It is first time to write here. I am an novice end user interested in
GNUstep just for fun.
 Because some troubles occurred at use, I would like to get your advise.
 Used environment is Xubuntu 13.10 (linux kernel 3.11.0-3 smp i386),
clang 3.4 svn, libobjc2 1.7 svn, gnustep svn at VMWare player 5.0.2


1) GWorkspace with non-fragile abi
 Other usr applications (Gorm, SystemPreferences, etc.) work well except
GWorkspace when compiled with non-fragile abi.

 The symptom is like this proceedings :
 (1) dock icon appers --> (2) fswatcher progessbar appears --> (3) core
dumped (Segmentation Faults)

 GDB shows like this:
-------------------------------------------------------------------
Reading symbols from
/usr/GNUstep/Local/Applications/GWorkspace.app/GWorkspace...done.
(gdb) r
Starting program: /usr/GNUstep/Local/Applications/GWorkspace.app/GWorkspace
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1".
2013-08-21 11:43:52.327 fswatcher[26763] register client 2

Program received signal SIGSEGV, Segmentation fault.
-[NSString(NSStringDrawing) boundingRectWithSize:options:attributes:] (
    self=0xb7fbcdd8 <.objc_str485>, _cmd=0xb7de5388
<.objc_selector_list+56>,
    size=..., options=NSStringDrawingUsesLineFragmentOrigin,
attrs=0x8ab86e0)
    at NSStringDrawing.m:683
683       NSRect result = NSZeroRect;
----------------------------------------------------------------

 It seems to occur error when initializaing NSRect object with
NSZeroRect. However, same initialization code from other applications
did not make troubles. I cannot know whether NSStringDrawing.m in
gnustep-gui or GWorkspace source is wrong.
 When NSZeroRect was commented out and gnustep-gui was re-compiled, all
works well.

 In addtion, fragile-abi (linux gcc 4.8 default) and non-fragile abi
(FreeBSD 9.x, 10.x clang 3.4 svn default) did not make troubles.


2) non-fragile abi option at clang in linux
 I have seen an atricle that compiler option
'-fobjc-runtime=gnustep-1.7' is enough to use non-fragile abi and
'-fobjc-nonfragile-abi' rather refer to legacy runtime at mailing-list.
However, building LanguageKit in Etoile shows error message like this:
"-fobjc-arc is not supported at legacy runtime" when
'-fobjc-nonfragile-abi' was not configured.

 "gnustep-config --objc-flags" shows like with '-fobjc-non-fragile-abi':

-MMD -MP -DGNUSTEP -DGNUSTEP_BASE_LIBRARY=1 -DGNU_GUI_LIBRARY=1
-DGNU_RUNTIME=1 -DGNUSTEP_BASE_LIBRARY=1 -fno-strict-aliasing
-fexceptions -fobjc-exceptions -D_NATIVE_OBJC_EXCEPTIONS
-fobjc-nonfragile-abi -D_NONFRAGILE_ABI -pthread -fPIC -DDEBUG
-fno-omit-frame-pointer -Wall -DGSWARN -DGSDIAGNOSE -Wno-import -g
-fgnu-runtime -fconstant-string-class=NSConstantString -I.
-I/usr/GNUstep/Local/Library/Headers -I/usr/GNUstep/System/Library/Headers

 This is my understanding. Is it correct?

                        fragile-abi             non-fragile abi
 legacy gcc runtime             OK                      N/A
 (libojc4 from gcc)

 new gnu runtime                OK                      OK
 (libojc2 from dev-libs)
 "-fgnu-runtime"                        "-fobjc-runtime=gnustep-1.7"
                                        or "-fobjc-nonfragile-abi"


3) XIM at X11 backends
 To input non-latin character at text box of gnustep applicaton, I tried
all XIM such as ibus, scim, uim, fcitx, but failed. After then, this
document was found:
------------------------------------------------------------
Input ( http://wiki.gnustep.org/index.php/I18n )
    NSTextInput protocol
    NSInputManager
 Current Status
    Currently we use XIM. It is only available on systems that use the
X11 backends.
------------------------------------------------------------
 Default backend at linux seems to be cairo. Does not cairo backend
support XIM? When backend was changed into xlib, applications were not
excuted as failed to load true-type fonts.
 Because direct keyboard input is not allowed, indirect and incomplete
copy-paste input is only available.

4) Localization resources
 GNUstep system and applications seem to comprised of many bundles and
frameworks which have thier own message resources. However, I cannot
figure out whether their resources are shared or separated.
 For example, SystemPrerences source tree is consist as like this:

SystemPreferences -->   Resource (.lproj)
Modules           -->   ColorSchemes            -->Resources (.lproj)
                        FileSystem              -->Resources (.lproj)
                        Fonts                   -->Resources (.lproj)
                        ...

 After compile:
                        PreferencePanes         -->Resources (.lproj)
                        SystemPreferences.app   -->Resources (.lproj)

 Though Localizable.strings and .gorm file in each source .lproj were
translated before compiling, compiled application still shows partial
translation. To comlete localization, resources at generated .app were
edited manually.

 'make_strings' seems not to extract strings at files in sub-directories
(have not -r switch in grep, find). If sub-projects have own separated
string resource and aggregate to .app when compiled, it would be
appropriate. However, compiling does not seem to aggregate localized
resources.

4) Spellchecker
When excuting application at localized environment (defaults
NSGlobalDomain NSLanguages xxxxxx), these messages are printed to termianl:
-------------------------------------------------------------------
2013-08-21 15:19:30.242 gdnc[27202] File NSDictionary.m: 673. In
-[NSDictionary initWithContentsOfFile:] Contents of file
'/usr/GNUstep/Local/Library/Libraries/gnustep-base/Versions/1.24/Resources/Languages/XXXXXX'
does not contain a dictionary
-------------------------------------------------------------------
gnustep i18n document says like this: (
http://wiki.gnustep.org/index.php/I18n )
 Writing aids and processing mechanisms
        Spell-checking NSSpellChecker
Current Status
    The spellchecker uses libaspell for its backend
        aspell has dictionaries for at least these languages - af, br,
ca, cs, cy, da, de, el, en, eo, es, fo, fr, ga, he, hr, is, it, nl, no,
pl, pt, ro, ru, sk, sl, sv, uk (list taken from gentoo portage)
        some languages are unsupported by aspell.
        In the case where the currently selected NSLanguage doesn't have
a dictionary available, an error dialog will show, telling you that the
dictionary isn't available. It won't allow you to spell check with
another dictionary until you manually open the spell check panel, and
select a different dictionary. I mention this becuase its easy to get
the impression that the spellchecker is broken if your NSLanguage is for
example set to Thai.

 Is there any substitute or wrapper to other spellchecker system
(hunspell, ispell, etc.) for unsupported languages by aspell?


5) ProjectCenter
 ProjectCenter seems to import not .pbproj or .xcodeproj or GNUmakefile
but only .pcproj. GNUstep example applications are generated with
GNUmakefile not .pcproj. Buildtool and pbxbuild works at terminal. Is
there any IDE similar to XCode?

 Sorry to well-not-organized long text. As my understanding of English
and GNUstep is thin, the descriptions may be somewhat illegible.

 Lee, Seong-Gu ( at gmail dot com )



reply via email to

[Prev in Thread] Current Thread [Next in Thread]