Issue 76642

Summary: climaker rewrite in C#
Product: udk Reporter: radekdoulik <rodo>
Component: codeAssignee: AOO issues mailing list <issues>
Status: CONFIRMED --- QA Contact:
Severity: Trivial    
Priority: P3 CC: issues, jens-heiner.rechtien, joachim.lingner, kai.sommerfeld, rene, thb
Version: current   
Target Milestone: 4.x   
Hardware: All   
OS: All   
Issue Type: FEATURE Latest Confirmation in: ---
Developer Difficulty: ---
Attachments:
Description Flags
proposed patch
none
proposed patch
none
proposed patch
none
proposed patch
none
proposed patch
none
revised patch
none
terminal output none

Description radekdoulik 2007-04-24 08:34:38 UTC
Attached patches contain climaker rewritten in C#. The reason for doing so is
that we lack managed C++ on linux/mono, so I have rewritten climaker tool in C#
+ native shared library to access UNO reflection stuff.

Besides different UUID's, the generated libraries in original and new climaker
(cli_types.dll) are identical - checked with monodis output.

The functionality should be identical to that in oof680-m14.

I hope these patches can be accepted upstream.

The patches should be applied in this order:

mono-climaker.diff
mono-climaker-config.diff
climaker-csharp-win.diff
buildfix-climaker-disabled.diff
Comment 1 radekdoulik 2007-04-24 08:35:22 UTC
Created attachment 44630 [details]
proposed patch
Comment 2 radekdoulik 2007-04-24 08:35:41 UTC
Created attachment 44631 [details]
proposed patch
Comment 3 radekdoulik 2007-04-24 08:36:21 UTC
Created attachment 44632 [details]
proposed patch
Comment 4 radekdoulik 2007-04-24 08:36:45 UTC
Created attachment 44633 [details]
proposed patch
Comment 5 radekdoulik 2007-04-24 08:37:09 UTC
Created attachment 44634 [details]
proposed patch
Comment 6 kay.ramme 2007-04-30 14:45:36 UTC
Radek, sorry for the delay.

->Jochen, please take this over ... :-)
Comment 7 joachim.lingner 2007-04-30 15:19:51 UTC
Have you tested the climaker on Windows. Do the cli tests in project testtools
work (on Windows)?
Comment 8 radekdoulik 2007-05-02 13:28:39 UTC
I have tested building climaker and cli_types.dll on windows. The generated dll
differed only by UUID number.

I didn't try the testtools. I will try them and report if they run OK.
Comment 9 joachim.lingner 2007-05-02 14:48:38 UTC
To test the climaker and the produced cli_types.dll i suggest that you proceed
in this way:

-build climaker and make it available in your build environment
-build testtools completely. The climaker will be used to produce a
cli_types_bridgetest.dll which will be used by test code in this project.
-go to wntmsci10.pro/bin and run cli_bridgetest_inprocess.exe. If the output
does not contain obvious error messages than it should be all right. Make sure
you do not have an office installed because then the cli assemblies from the GAC
would be used.
-you could then also build testtools/qa/cli (dmake) and then call dmake run in
this directory. This test runs bascially the same code as
cli_bridgetest_inprocess.exe

Another test in cli_ure must work as well. This test is at cli_ure/qa/climaker.
Call dmake in this directory and then dmake run.
Comment 10 radekdoulik 2007-05-09 15:15:36 UTC
I have found few issues with testtools on win32, fixing them now. Also noticed
that attached patches need another mono patches from ooo-build.

Once I fix testtools issues, I will prepapre another patch for upstream OOo.
Comment 11 radekdoulik 2007-05-09 18:09:33 UTC
Created attachment 44985 [details]
revised patch
Comment 12 radekdoulik 2007-05-09 18:10:15 UTC
Created attachment 44986 [details]
terminal output
Comment 13 radekdoulik 2007-05-09 18:15:36 UTC
I have attached updated patch. It should work OK in upstream version.

I have fixed 2 issues which were broke testtools build.

I was able to run cli_bridgetest_inprocess.exe successfully. The other QA runs
ended with errors as visible in the last attachment. I got the same problem when
using old C++ climaker, so it looks like it is caused by something else. Any
idea what might be wrong?

Any chance to test the patch in your build? The patch should work nicely now.
Comment 14 joachim.lingner 2007-05-10 09:14:01 UTC
I suppoes the OOoRunner.jar is not in your build environment. But you can simple
start wntmsci10\bin\qa\climaker\test_climaker.exe. This will check the code
generated in cli_test_types.idl.

Could you try this out?

Another question, I suppose your from Novell (because of the JCA) ?

I cannot say when exactly I will review the patch and apply it. Currently the
target is for 2.3. When we integrate it then we will only use it on Windows.
Once there is a mono bridge we need to think about extending our build
environment to include mono.
Comment 15 radekdoulik 2007-05-10 09:45:22 UTC
test_climaker.exe runs OK.

Radek Doul355k@buciny
/cygdrive/c/svn/ooo-build/build/oof680-m7/cli_ure/wntmsci10.pro/bin/qa/climaker
$ ./test_climaker.exe

=====================================
Test succeeded!
=====================================

Yup, I am from Novell, so there's no problem with JCA.

The attached patch indeed make it work on win32 only. In ooo-build we have mono
bridge and climaker running on mono. It will be upstreamed later as well I hope.

Any chance to speedup the integration? I am worried about new changes in
climaker which I will then have to merge in the rewrite. Would creating cws with
the patch might help it?
Comment 16 joachim.lingner 2007-05-10 13:35:13 UTC
If you have write access to openoffice cvs you could create your own cws and
apply the patches. Then let me verify this issue. If you want to do that then
set the owner back to yourself.
Comment 17 joachim.lingner 2007-05-15 14:24:47 UTC
.
Comment 18 joachim.lingner 2007-06-11 11:28:22 UTC
Please let me know when I can verify the changes on your CWS.
Comment 19 radekdoulik 2007-07-09 20:22:39 UTC
Hi jl,

I am sorry for the delay. I was finally able to build upstream version with the
patch on windows. The patch is now applied in climakercsharp01 cws.

I am uploading installation set to
http://go-oo.org/packages/mono/climakercsharp01/en-US/

Please test it.

Cheers
Radek
Comment 20 pavel 2007-08-02 12:18:48 UTC
Reassign so jl can see this issue.

I think we can't make this into 2.3 because of today's code freeze. Moving target.
Comment 21 joachim.lingner 2007-08-28 08:25:04 UTC
.
Comment 22 joachim.lingner 2007-09-25 12:58:07 UTC
Currently there is no benefit of integrating this, without having a mono-bridge.
Therefore back to submitter. Sorry.
Comment 23 radekdoulik 2007-09-25 13:01:48 UTC
well, this is prerequisition for the mono bridge, which we already have in
ooo-build. Without it the bridge won't build.
Comment 24 mmeeks 2007-09-25 14:11:02 UTC
Our intention is to assign the mono-bridge to Sun under the terms of the JCA as
well in due course. OTOH, of course we can find our own QA for this, I can see
how Sun might be unwilling to :-)
Comment 25 kai.sommerfeld 2007-10-15 09:58:51 UTC
mmeeks: Sun is interested in doing QA for the new climaker implementation.
Especially because we are very interested to avoid regressions on Windows (.net)
;-) Unfortunately, due to higher priorities for other tasks we don't have the
time for this, ATM.
Comment 26 joachim.lingner 2007-12-07 16:06:32 UTC
possible candidate for retargeting.
Comment 27 joachim.lingner 2008-01-11 08:14:24 UTC
Retargeting to 3.0
Comment 28 joachim.lingner 2008-03-25 14:45:44 UTC
.
Comment 29 joachim.lingner 2008-05-27 08:27:37 UTC
.
Comment 30 joachim.lingner 2008-05-30 15:25:18 UTC
Retargeted.
Comment 31 joachim.lingner 2008-08-12 10:19:51 UTC
.
Comment 32 joachim.lingner 2008-10-21 11:13:25 UTC
.
Comment 33 joachim.lingner 2009-01-20 16:13:16 UTC
As it seems I cannot find time for doing QA etc. for this cws. So I suggest the
following. 

-Prepare the CWS yourself and do the QA (Linux && Windows) in you company. 
-Make sure that you get the latest fixes in your implementation. There was at
least one important fix after your last change.
-climaker is used in cli_ure, unoil, testtools

Please note that bringing this code into OOo is only useful when the mono bridge
comes with it. 

If you cannot do the automated test let me know. I will then find someone to run
those tests on your CWS. Then you can set the CWS to approved by QA, so that it
will be integrated later.
Comment 34 rene 2009-01-20 16:34:46 UTC
> -Make sure that you get the latest fixes in your implementation. There was at
> least one important fix after your last change.

Can you point us to it/them if you know? (maybe cwses)?
I think looking at various masters back is like looking for a needle in the
haystack...
Comment 35 rene 2009-01-20 16:36:26 UTC
(as the PATCH known to be outdated, this should be FEATURE, probably, although
I personally think it's a bugfix - syncing Windows and Linux' features)
Comment 36 rene 2009-03-30 08:21:27 UTC
jl: ping?

> -Make sure that you get the latest fixes in your implementation. There was at
> least one important fix after your last change.

Can you point us to it/them if you know? (maybe cwses)?
I think looking at various masters back is like looking for a needle in the
haystack...
Comment 37 joachim.lingner 2010-04-13 16:12:05 UTC
>I personally think it's a bugfix - syncing Windows and Linux' features)

This patch is a rewrite of climaker tool which is used for creating .NET code.
Climaker is part of the cli-uno language binding. 

The patch does not bring any benefit to the cli-uno language binding. It is only
useful for people who want to build cli programs and run it with a OOo including
the mono bridge. This is, however, not possible with a vanilla OOo, because it
does not contain the mono bridge.  

As long as the OOo project does not benefit as well from this patch, I do not
see the need to apply it.
Comment 38 rene 2010-04-13 16:17:09 UTC
jl:

> The patch does not bring any benefit to the cli-uno language binding. It is only
> useful for people who want to build cli programs and run it with a OOo including
> the mono bridge. This is, however, not possible with a vanilla OOo, because it  
> does not contain the mono bridge.                                               

Eh? This is *prerequisite* for the mono bridge. As already written in *this
issue*. So you argue that because there is no mono bridge you don't care?
Oh my..
So effectively you block the mono bridge.

And as said, they *do* want to contribute the mono bridge under JCA.

> As long as the OOo project does not benefit as well from this patch, I do 
> not see the need to apply it.

it does. by having a mono bridge. (and thus closing another gap between windows
and linux)
Comment 39 rene 2010-04-13 16:18:05 UTC
jl: if we get this in we can get the mono bridge in, too (I think it makes sense
to do them in one cws)
Comment 40 rene 2010-04-13 16:37:05 UTC
jl. so please give us the necessary info as I asked for in comment "-------
Additional comments from rene Tue Jan 20 16:34:46 +0000 2009 -------" so both
of this (climaker *AND* mono bridge) can be integrated
Comment 41 rene 2010-04-13 16:37:43 UTC
explicitely CCing jl
Comment 42 joachim.lingner 2010-04-14 08:50:39 UTC
>Eh? This is *prerequisite* for the mono bridge.

If this was true, then we would never have been able to develop the cli-uno
bridge, because there was nobody we could have asked to provide us a complete
climaker :)

>jl: if we get this in we can get the mono bridge in, too (I think it makes sense
to do them in one cws)

Agreed, I created the cws monobridge. Now I ask you and radekdoulik to add the
complete mono language binding.

Please clarify if this patch would change any base line, and which platforms are
affected (not sure if mono also works for mac, Solaris)
Please look here:
http://wiki.services.openoffice.org/wiki/Compiler_versions_used_by_port_maintainers_and_release_engineers

As for the changes, the most important fix was done to
cli_ure/source/climaker/climaker_emit.cxx, changeset:   198797 (i79029). It can
be tested by building the ure and office types. There is also a test in
cli_ure/qa/climaker.

Please use hg log and hg diff to find out was has changed since the last update
of the patch.
Comment 43 rene 2010-04-14 09:36:27 UTC
> If this was true, then we would never have been able to develop the cli-uno
> bridge, because there was nobody we could have asked to provide us a complete
> climaker :)

.NET != mono. For mono it is a prerequisite. I didn't talk about Windows or .net
or whatever.

> Please clarify if this patch would change any base line, and which platforms 
> are affected (not sure if mono also works for mac, Solaris)

Baseline for mono is >= 1.2.3 afair.

> Please use hg log and hg diff to find out was has changed since the last
> update of the patch.

The patch is already at current 3.2.0 state. (it is used in various distros already)
Comment 44 rene 2010-04-14 09:41:37 UTC
> Baseline for mono is >= 1.2.3 afair.

But there of course will be --disable-mono for those who don't want it
Comment 45 rene 2010-04-14 09:56:54 UTC
> Agreed, I created the cws monobridge. Now I ask you and radekdoulik to add the
> complete mono language binding.

Thanks, but I'd suggest to change the cws owner from you to rodo...
Comment 46 joachim.lingner 2010-04-14 10:06:45 UTC
>.NET != mono. For mono it is a prerequisite. I didn't talk about Windows or .net
>or whatever.
You got me wrong. The climaker is part of the language binding. And there is
nothing which requires that one part of it must already be contained OOo. This
can all be done in one separate CWS as you suggested.

As for the base line, I meant the dependencies too a particular version of glibc
and gcc or other build tools.
Comment 47 radekdoulik 2010-04-14 17:25:27 UTC
OK, sounds good. I will put the mono bridge in as well. I just need to finish
work on another cws and will move on this one soon.
Comment 48 Rob Weir 2013-07-30 02:40:58 UTC
Reset assignee on issues not touched by assignee in more than 1000 days.