cling

classic Classic list List threaded Threaded
20 messages Options
Reply | Threaded
Open this post in threaded view
|

cling

Axel Naumann
Hi,

As we announced before
<http://www.llvm.org/devmtg/2010-11/Naumann-Cling.pdf>, we (people from
CERN and Fermilab) are working on the C++ interpreter(*) cling
<http://cern.ch/cling> that's based on clang and llvm. This is in the
context of ROOT <http://root.cern.ch> and CINT
<http://root.cern.ch/cint>, our current C++ interpreter.

We have gotten to a stage where we believe cling is actually useful: it
behaves like a regular interpreter!

[cling]$ #include <cmath>
[cling]$ double x = std::sin(3.1)
(double) 4.158066e-02
[cling]$ .L libz
[cling]$ #include "zlib.h"
[cling]$ zlibVersion()
(const char * const) "1.2.3.4"

or simply

$ echo 'extern "C" const char* zlibVersion();
 zlibVersion()' | cling -lz

(const char * const) "1.2.3.4"

and even

$ cat t.cxx
#include "cling/Interpreter/Interpreter.h"
void t() {
   gCling->processLine("gCling->getVersion()");
}
$ cling
[cling]$ .x t.cxx
(const char * const) "$Id: Interpreter.cpp 40322 2011-07-21 14:20:14Z
axel $"

We would like to know whether it's just us finding this spectacular :-)
or whether there is general interest. Our aim is to get it included in
the clang repository.

For us, this is just the first step; we need to integrate it into the
rest of our software wildlife here at CERN, and we need to continue to
work on robustness and features, e.g. reloading of code. I.e. I expect
we will maintain and continue to develop it for years to come.

Here is the code:
svn co http://root.cern.ch/svn/root/branches/dev/cling

Let us know what you think!

Best regards,
the cling team (Vassil, Philippe, Paul, Lukasz and Axel).

(*) Yes, it's not an interpreter, it's really an incremental compiler
with an interactive shell with (eventually) features like automatic
library loading and late variable binding. But it smells like an
interpreter :-)
_______________________________________________
cfe-dev mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
Reply | Threaded
Open this post in threaded view
|

Re: cling

Garrison Venn
I think this is very cool!

So how well will it scale? For example can we use it to run on/with LLVM/Clang
source? Sorry I have only briefly read through your links.

Keep it up

Garrison

On Jul 25, 2011, at 15:28, Axel Naumann wrote:

> Hi,
>
> As we announced before
> <http://www.llvm.org/devmtg/2010-11/Naumann-Cling.pdf>, we (people from
> CERN and Fermilab) are working on the C++ interpreter(*) cling
> <http://cern.ch/cling> that's based on clang and llvm. This is in the
> context of ROOT <http://root.cern.ch> and CINT
> <http://root.cern.ch/cint>, our current C++ interpreter.
>
> We have gotten to a stage where we believe cling is actually useful: it
> behaves like a regular interpreter!
>
> [cling]$ #include <cmath>
> [cling]$ double x = std::sin(3.1)
> (double) 4.158066e-02
> [cling]$ .L libz
> [cling]$ #include "zlib.h"
> [cling]$ zlibVersion()
> (const char * const) "1.2.3.4"
>
> or simply
>
> $ echo 'extern "C" const char* zlibVersion();
> zlibVersion()' | cling -lz
>
> (const char * const) "1.2.3.4"
>
> and even
>
> $ cat t.cxx
> #include "cling/Interpreter/Interpreter.h"
> void t() {
>   gCling->processLine("gCling->getVersion()");
> }
> $ cling
> [cling]$ .x t.cxx
> (const char * const) "$Id: Interpreter.cpp 40322 2011-07-21 14:20:14Z
> axel $"
>
> We would like to know whether it's just us finding this spectacular :-)
> or whether there is general interest. Our aim is to get it included in
> the clang repository.
>
> For us, this is just the first step; we need to integrate it into the
> rest of our software wildlife here at CERN, and we need to continue to
> work on robustness and features, e.g. reloading of code. I.e. I expect
> we will maintain and continue to develop it for years to come.
>
> Here is the code:
> svn co http://root.cern.ch/svn/root/branches/dev/cling
>
> Let us know what you think!
>
> Best regards,
> the cling team (Vassil, Philippe, Paul, Lukasz and Axel).
>
> (*) Yes, it's not an interpreter, it's really an incremental compiler
> with an interactive shell with (eventually) features like automatic
> library loading and late variable binding. But it smells like an
> interpreter :-)
> _______________________________________________
> cfe-dev mailing list
> [hidden email]
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev


_______________________________________________
cfe-dev mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
Reply | Threaded
Open this post in threaded view
|

Re: cling

Axel Naumann
Hi Garrison,

On 07/25/2011 09:59 PM, Garrison Venn wrote:
> I think this is very cool!

Thanks :-)

> So how well will it scale? For example can we use it to run on/with LLVM/Clang
> source?

It scales like a traditional translation unit. I.e. I wouldn't #include
all of clang's sources but pull clang in through shared libraries and
headers. As the example I sent shows, cling can load and reference
shared libs.

Cheers, Axel.


>
> On Jul 25, 2011, at 15:28, Axel Naumann wrote:
>
>> Hi,
>>
>> As we announced before
>> <http://www.llvm.org/devmtg/2010-11/Naumann-Cling.pdf>, we (people from
>> CERN and Fermilab) are working on the C++ interpreter(*) cling
>> <http://cern.ch/cling> that's based on clang and llvm. This is in the
>> context of ROOT <http://root.cern.ch> and CINT
>> <http://root.cern.ch/cint>, our current C++ interpreter.
>>
>> We have gotten to a stage where we believe cling is actually useful: it
>> behaves like a regular interpreter!
>>
>> [cling]$ #include <cmath>
>> [cling]$ double x = std::sin(3.1)
>> (double) 4.158066e-02
>> [cling]$ .L libz
>> [cling]$ #include "zlib.h"
>> [cling]$ zlibVersion()
>> (const char * const) "1.2.3.4"
>>
>> or simply
>>
>> $ echo 'extern "C" const char* zlibVersion();
>> zlibVersion()' | cling -lz
>>
>> (const char * const) "1.2.3.4"
>>
>> and even
>>
>> $ cat t.cxx
>> #include "cling/Interpreter/Interpreter.h"
>> void t() {
>>   gCling->processLine("gCling->getVersion()");
>> }
>> $ cling
>> [cling]$ .x t.cxx
>> (const char * const) "$Id: Interpreter.cpp 40322 2011-07-21 14:20:14Z
>> axel $"
>>
>> We would like to know whether it's just us finding this spectacular :-)
>> or whether there is general interest. Our aim is to get it included in
>> the clang repository.
>>
>> For us, this is just the first step; we need to integrate it into the
>> rest of our software wildlife here at CERN, and we need to continue to
>> work on robustness and features, e.g. reloading of code. I.e. I expect
>> we will maintain and continue to develop it for years to come.
>>
>> Here is the code:
>> svn co http://root.cern.ch/svn/root/branches/dev/cling
>>
>> Let us know what you think!
>>
>> Best regards,
>> the cling team (Vassil, Philippe, Paul, Lukasz and Axel).
>>
>> (*) Yes, it's not an interpreter, it's really an incremental compiler
>> with an interactive shell with (eventually) features like automatic
>> library loading and late variable binding. But it smells like an
>> interpreter :-)
>> _______________________________________________
>> cfe-dev mailing list
>> [hidden email]
>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
>
>

_______________________________________________
cfe-dev mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
Reply | Threaded
Open this post in threaded view
|

Re: cling

Garrison Venn
I'll definitely have to check this out!

Thanks for the work

Garrison

On Jul 25, 2011, at 16:33, Axel Naumann wrote:

> Hi Garrison,
>
> On 07/25/2011 09:59 PM, Garrison Venn wrote:
>> I think this is very cool!
>
> Thanks :-)
>
>> So how well will it scale? For example can we use it to run on/with LLVM/Clang
>> source?
>
> It scales like a traditional translation unit. I.e. I wouldn't #include
> all of clang's sources but pull clang in through shared libraries and
> headers. As the example I sent shows, cling can load and reference
> shared libs.
>
> Cheers, Axel.
>
>
>>
>> On Jul 25, 2011, at 15:28, Axel Naumann wrote:
>>
>>> Hi,
>>>
>>> As we announced before
>>> <http://www.llvm.org/devmtg/2010-11/Naumann-Cling.pdf>, we (people from
>>> CERN and Fermilab) are working on the C++ interpreter(*) cling
>>> <http://cern.ch/cling> that's based on clang and llvm. This is in the
>>> context of ROOT <http://root.cern.ch> and CINT
>>> <http://root.cern.ch/cint>, our current C++ interpreter.
>>>
>>> We have gotten to a stage where we believe cling is actually useful: it
>>> behaves like a regular interpreter!
>>>
>>> [cling]$ #include <cmath>
>>> [cling]$ double x = std::sin(3.1)
>>> (double) 4.158066e-02
>>> [cling]$ .L libz
>>> [cling]$ #include "zlib.h"
>>> [cling]$ zlibVersion()
>>> (const char * const) "1.2.3.4"
>>>
>>> or simply
>>>
>>> $ echo 'extern "C" const char* zlibVersion();
>>> zlibVersion()' | cling -lz
>>>
>>> (const char * const) "1.2.3.4"
>>>
>>> and even
>>>
>>> $ cat t.cxx
>>> #include "cling/Interpreter/Interpreter.h"
>>> void t() {
>>>  gCling->processLine("gCling->getVersion()");
>>> }
>>> $ cling
>>> [cling]$ .x t.cxx
>>> (const char * const) "$Id: Interpreter.cpp 40322 2011-07-21 14:20:14Z
>>> axel $"
>>>
>>> We would like to know whether it's just us finding this spectacular :-)
>>> or whether there is general interest. Our aim is to get it included in
>>> the clang repository.
>>>
>>> For us, this is just the first step; we need to integrate it into the
>>> rest of our software wildlife here at CERN, and we need to continue to
>>> work on robustness and features, e.g. reloading of code. I.e. I expect
>>> we will maintain and continue to develop it for years to come.
>>>
>>> Here is the code:
>>> svn co http://root.cern.ch/svn/root/branches/dev/cling
>>>
>>> Let us know what you think!
>>>
>>> Best regards,
>>> the cling team (Vassil, Philippe, Paul, Lukasz and Axel).
>>>
>>> (*) Yes, it's not an interpreter, it's really an incremental compiler
>>> with an interactive shell with (eventually) features like automatic
>>> library loading and late variable binding. But it smells like an
>>> interpreter :-)
>>> _______________________________________________
>>> cfe-dev mailing list
>>> [hidden email]
>>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
>>
>>
>


_______________________________________________
cfe-dev mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
Reply | Threaded
Open this post in threaded view
|

Re: cling

Argyrios Kyrtzidis-2
In reply to this post by Axel Naumann
Hi Axel,

That is awesome!

On Jul 25, 2011, at 1:33 PM, Axel Naumann wrote:

>
>> So how well will it scale? For example can we use it to run on/with LLVM/Clang
>> source?
>
> It scales like a traditional translation unit. I.e. I wouldn't #include
> all of clang's sources but pull clang in through shared libraries and
> headers. As the example I sent shows, cling can load and reference
> shared libs.

Technically it should be possible to have a static library in llvm bitcode and load that, is it something you guys can consider ?

-Argyrios

>
> Cheers, Axel.
>
>
>>
>> On Jul 25, 2011, at 15:28, Axel Naumann wrote:
>>
>>> Hi,
>>>
>>> As we announced before
>>> <http://www.llvm.org/devmtg/2010-11/Naumann-Cling.pdf>, we (people from
>>> CERN and Fermilab) are working on the C++ interpreter(*) cling
>>> <http://cern.ch/cling> that's based on clang and llvm. This is in the
>>> context of ROOT <http://root.cern.ch> and CINT
>>> <http://root.cern.ch/cint>, our current C++ interpreter.
>>>
>>> We have gotten to a stage where we believe cling is actually useful: it
>>> behaves like a regular interpreter!
>>>
>>> [cling]$ #include <cmath>
>>> [cling]$ double x = std::sin(3.1)
>>> (double) 4.158066e-02
>>> [cling]$ .L libz
>>> [cling]$ #include "zlib.h"
>>> [cling]$ zlibVersion()
>>> (const char * const) "1.2.3.4"
>>>
>>> or simply
>>>
>>> $ echo 'extern "C" const char* zlibVersion();
>>> zlibVersion()' | cling -lz
>>>
>>> (const char * const) "1.2.3.4"
>>>
>>> and even
>>>
>>> $ cat t.cxx
>>> #include "cling/Interpreter/Interpreter.h"
>>> void t() {
>>>  gCling->processLine("gCling->getVersion()");
>>> }
>>> $ cling
>>> [cling]$ .x t.cxx
>>> (const char * const) "$Id: Interpreter.cpp 40322 2011-07-21 14:20:14Z
>>> axel $"
>>>
>>> We would like to know whether it's just us finding this spectacular :-)
>>> or whether there is general interest. Our aim is to get it included in
>>> the clang repository.
>>>
>>> For us, this is just the first step; we need to integrate it into the
>>> rest of our software wildlife here at CERN, and we need to continue to
>>> work on robustness and features, e.g. reloading of code. I.e. I expect
>>> we will maintain and continue to develop it for years to come.
>>>
>>> Here is the code:
>>> svn co http://root.cern.ch/svn/root/branches/dev/cling
>>>
>>> Let us know what you think!
>>>
>>> Best regards,
>>> the cling team (Vassil, Philippe, Paul, Lukasz and Axel).
>>>
>>> (*) Yes, it's not an interpreter, it's really an incremental compiler
>>> with an interactive shell with (eventually) features like automatic
>>> library loading and late variable binding. But it smells like an
>>> interpreter :-)
>>> _______________________________________________
>>> cfe-dev mailing list
>>> [hidden email]
>>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
>>
>>
>
> _______________________________________________
> cfe-dev mailing list
> [hidden email]
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev

_______________________________________________
cfe-dev mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
Reply | Threaded
Open this post in threaded view
|

Re: cling

Axel Naumann
Hi Argyrios,

On 07/27/2011 08:31 PM, Argyrios Kyrtzidis wrote:
> Technically it should be possible to have a static library in llvm
> bitcode and load that, is it something you guys can consider ?

Implemented. You can now do e.g.

$ cat test.cxx
#include <stdio.h>
void HELLO() { printf("HELLO!\n");}
$ clang -emit-llvm -c test.cxx  -o test.bc
$ cling -ltest.bc
$ void HELLO();
$ HELLO()
HELLO!

It simply uses the llvm::Linker - whatever that understands should now
be understood by cling.

Thanks for the suggestion!

Cheers, Axel.

>>
>>
>>>
>>> On Jul 25, 2011, at 15:28, Axel Naumann wrote:
>>>
>>>> Hi,
>>>>
>>>> As we announced before
>>>> <http://www.llvm.org/devmtg/2010-11/Naumann-Cling.pdf>, we (people from
>>>> CERN and Fermilab) are working on the C++ interpreter(*) cling
>>>> <http://cern.ch/cling> that's based on clang and llvm. This is in the
>>>> context of ROOT <http://root.cern.ch> and CINT
>>>> <http://root.cern.ch/cint>, our current C++ interpreter.
>>>>
>>>> We have gotten to a stage where we believe cling is actually useful: it
>>>> behaves like a regular interpreter!
>>>>
>>>> [cling]$ #include <cmath>
>>>> [cling]$ double x = std::sin(3.1)
>>>> (double) 4.158066e-02
>>>> [cling]$ .L libz
>>>> [cling]$ #include "zlib.h"
>>>> [cling]$ zlibVersion()
>>>> (const char * const) "1.2.3.4"
>>>>
>>>> or simply
>>>>
>>>> $ echo 'extern "C" const char* zlibVersion();
>>>> zlibVersion()' | cling -lz
>>>>
>>>> (const char * const) "1.2.3.4"
>>>>
>>>> and even
>>>>
>>>> $ cat t.cxx
>>>> #include "cling/Interpreter/Interpreter.h"
>>>> void t() {
>>>>  gCling->processLine("gCling->getVersion()");
>>>> }
>>>> $ cling
>>>> [cling]$ .x t.cxx
>>>> (const char * const) "$Id: Interpreter.cpp 40322 2011-07-21 14:20:14Z
>>>> axel $"
>>>>
>>>> We would like to know whether it's just us finding this spectacular :-)
>>>> or whether there is general interest. Our aim is to get it included in
>>>> the clang repository.
>>>>
>>>> For us, this is just the first step; we need to integrate it into the
>>>> rest of our software wildlife here at CERN, and we need to continue to
>>>> work on robustness and features, e.g. reloading of code. I.e. I expect
>>>> we will maintain and continue to develop it for years to come.
>>>>
>>>> Here is the code:
>>>> svn co http://root.cern.ch/svn/root/branches/dev/cling
>>>>
>>>> Let us know what you think!
>>>>
>>>> Best regards,
>>>> the cling team (Vassil, Philippe, Paul, Lukasz and Axel).
>>>>
>>>> (*) Yes, it's not an interpreter, it's really an incremental compiler
>>>> with an interactive shell with (eventually) features like automatic
>>>> library loading and late variable binding. But it smells like an
>>>> interpreter :-)
>>>> _______________________________________________
>>>> cfe-dev mailing list
>>>> [hidden email]
>>>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
>>>
>>>
>>
>> _______________________________________________
>> cfe-dev mailing list
>> [hidden email]
>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
>
>
_______________________________________________
cfe-dev mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
Reply | Threaded
Open this post in threaded view
|

Re: cling

Daniel DeCovnick
In reply to this post by Axel Naumann
Very cool looking. How does it compare to ccons (http://code.google.com/p/ccons/), and any chance we could get C and Objective-C/Objective-C++ support eventually?

-Daniel

On Jul 25, 2011, at 12:28 PM, Axel Naumann wrote:

Hi,

As we announced before
<http://www.llvm.org/devmtg/2010-11/Naumann-Cling.pdf>, we (people from
CERN and Fermilab) are working on the C++ interpreter(*) cling
<http://cern.ch/cling> that's based on clang and llvm. This is in the
context of ROOT <http://root.cern.ch> and CINT
<http://root.cern.ch/cint>, our current C++ interpreter.

We have gotten to a stage where we believe cling is actually useful: it
behaves like a regular interpreter!

[cling]$ #include <cmath>
[cling]$ double x = std::sin(3.1)
(double) 4.158066e-02
[cling]$ .L libz
[cling]$ #include "zlib.h"
[cling]$ zlibVersion()
(const char * const) "1.2.3.4"

or simply

$ echo 'extern "C" const char* zlibVersion();
zlibVersion()' | cling -lz

(const char * const) "1.2.3.4"

and even

$ cat t.cxx
#include "cling/Interpreter/Interpreter.h"
void t() {
  gCling->processLine("gCling->getVersion()");
}
$ cling
[cling]$ .x t.cxx
(const char * const) "$Id: Interpreter.cpp 40322 2011-07-21 14:20:14Z
axel $"

We would like to know whether it's just us finding this spectacular :-)
or whether there is general interest. Our aim is to get it included in
the clang repository.

For us, this is just the first step; we need to integrate it into the
rest of our software wildlife here at CERN, and we need to continue to
work on robustness and features, e.g. reloading of code. I.e. I expect
we will maintain and continue to develop it for years to come.

Here is the code:
svn co http://root.cern.ch/svn/root/branches/dev/cling

Let us know what you think!

Best regards,
the cling team (Vassil, Philippe, Paul, Lukasz and Axel).

(*) Yes, it's not an interpreter, it's really an incremental compiler
with an interactive shell with (eventually) features like automatic
library loading and late variable binding. But it smells like an
interpreter :-)
_______________________________________________
cfe-dev mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev


_______________________________________________
cfe-dev mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
Reply | Threaded
Open this post in threaded view
|

Re: cling

Argyrios Kyrtzidis-2
In reply to this post by Axel Naumann
On Jul 27, 2011, at 4:12 PM, Axel Naumann wrote:

> Hi Argyrios,
>
> On 07/27/2011 08:31 PM, Argyrios Kyrtzidis wrote:
>> Technically it should be possible to have a static library in llvm
>> bitcode and load that, is it something you guys can consider ?
>
> Implemented. You can now do e.g.
>
> $ cat test.cxx
> #include <stdio.h>
> void HELLO() { printf("HELLO!\n");}
> $ clang -emit-llvm -c test.cxx  -o test.bc
> $ cling -ltest.bc
> $ void HELLO();
> $ HELLO()
> HELLO!
>
> It simply uses the llvm::Linker - whatever that understands should now
> be understood by cling.

Nice, that's great!

-Argyrios

>
> Thanks for the suggestion!
>
> Cheers, Axel.
>
>>>
>>>
>>>>
>>>> On Jul 25, 2011, at 15:28, Axel Naumann wrote:
>>>>
>>>>> Hi,
>>>>>
>>>>> As we announced before
>>>>> <http://www.llvm.org/devmtg/2010-11/Naumann-Cling.pdf>, we (people from
>>>>> CERN and Fermilab) are working on the C++ interpreter(*) cling
>>>>> <http://cern.ch/cling> that's based on clang and llvm. This is in the
>>>>> context of ROOT <http://root.cern.ch> and CINT
>>>>> <http://root.cern.ch/cint>, our current C++ interpreter.
>>>>>
>>>>> We have gotten to a stage where we believe cling is actually useful: it
>>>>> behaves like a regular interpreter!
>>>>>
>>>>> [cling]$ #include <cmath>
>>>>> [cling]$ double x = std::sin(3.1)
>>>>> (double) 4.158066e-02
>>>>> [cling]$ .L libz
>>>>> [cling]$ #include "zlib.h"
>>>>> [cling]$ zlibVersion()
>>>>> (const char * const) "1.2.3.4"
>>>>>
>>>>> or simply
>>>>>
>>>>> $ echo 'extern "C" const char* zlibVersion();
>>>>> zlibVersion()' | cling -lz
>>>>>
>>>>> (const char * const) "1.2.3.4"
>>>>>
>>>>> and even
>>>>>
>>>>> $ cat t.cxx
>>>>> #include "cling/Interpreter/Interpreter.h"
>>>>> void t() {
>>>>> gCling->processLine("gCling->getVersion()");
>>>>> }
>>>>> $ cling
>>>>> [cling]$ .x t.cxx
>>>>> (const char * const) "$Id: Interpreter.cpp 40322 2011-07-21 14:20:14Z
>>>>> axel $"
>>>>>
>>>>> We would like to know whether it's just us finding this spectacular :-)
>>>>> or whether there is general interest. Our aim is to get it included in
>>>>> the clang repository.
>>>>>
>>>>> For us, this is just the first step; we need to integrate it into the
>>>>> rest of our software wildlife here at CERN, and we need to continue to
>>>>> work on robustness and features, e.g. reloading of code. I.e. I expect
>>>>> we will maintain and continue to develop it for years to come.
>>>>>
>>>>> Here is the code:
>>>>> svn co http://root.cern.ch/svn/root/branches/dev/cling
>>>>>
>>>>> Let us know what you think!
>>>>>
>>>>> Best regards,
>>>>> the cling team (Vassil, Philippe, Paul, Lukasz and Axel).
>>>>>
>>>>> (*) Yes, it's not an interpreter, it's really an incremental compiler
>>>>> with an interactive shell with (eventually) features like automatic
>>>>> library loading and late variable binding. But it smells like an
>>>>> interpreter :-)
>>>>> _______________________________________________
>>>>> cfe-dev mailing list
>>>>> [hidden email]
>>>>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
>>>>
>>>>
>>>
>>> _______________________________________________
>>> cfe-dev mailing list
>>> [hidden email]
>>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
>>
>>
> _______________________________________________
> cfe-dev mailing list
> [hidden email]
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev

_______________________________________________
cfe-dev mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
Reply | Threaded
Open this post in threaded view
|

Re: cling

Vassil Vassilev
In reply to this post by Daniel DeCovnick
Hi,
  The prompt of ccons looks similar to ours.
  I think with few minor tweaks mainly in the prompt it would be possible. If we have usecase for people using it with C and Objective-{C|C++} I am willing to work on that.

Vassil
On 07/28/2011 01:49 AM, Daniel DeCovnick wrote:
Very cool looking. How does it compare to ccons (http://code.google.com/p/ccons/), and any chance we could get C and Objective-C/Objective-C++ support eventually?

-Daniel

On Jul 25, 2011, at 12:28 PM, Axel Naumann wrote:

Hi,

As we announced before
<http://www.llvm.org/devmtg/2010-11/Naumann-Cling.pdf>, we (people from
CERN and Fermilab) are working on the C++ interpreter(*) cling
<http://cern.ch/cling> that's based on clang and llvm. This is in the
context of ROOT <http://root.cern.ch> and CINT
<http://root.cern.ch/cint>, our current C++ interpreter.

We have gotten to a stage where we believe cling is actually useful: it
behaves like a regular interpreter!

[cling]$ #include <cmath>
[cling]$ double x = std::sin(3.1)
(double) 4.158066e-02
[cling]$ .L libz
[cling]$ #include "zlib.h"
[cling]$ zlibVersion()
(const char * const) "1.2.3.4"

or simply

$ echo 'extern "C" const char* zlibVersion();
zlibVersion()' | cling -lz

(const char * const) "1.2.3.4"

and even

$ cat t.cxx
#include "cling/Interpreter/Interpreter.h"
void t() {
  gCling->processLine("gCling->getVersion()");
}
$ cling
[cling]$ .x t.cxx
(const char * const) "$Id: Interpreter.cpp 40322 2011-07-21 14:20:14Z
axel $"

We would like to know whether it's just us finding this spectacular :-)
or whether there is general interest. Our aim is to get it included in
the clang repository.

For us, this is just the first step; we need to integrate it into the
rest of our software wildlife here at CERN, and we need to continue to
work on robustness and features, e.g. reloading of code. I.e. I expect
we will maintain and continue to develop it for years to come.

Here is the code:
svn co http://root.cern.ch/svn/root/branches/dev/cling

Let us know what you think!

Best regards,
the cling team (Vassil, Philippe, Paul, Lukasz and Axel).

(*) Yes, it's not an interpreter, it's really an incremental compiler
with an interactive shell with (eventually) features like automatic
library loading and late variable binding. But it smells like an
interpreter :-)
_______________________________________________
cfe-dev mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev

_______________________________________________ cfe-dev mailing list [hidden email] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev


_______________________________________________
cfe-dev mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
Reply | Threaded
Open this post in threaded view
|

Re: cling

David Chisnall
On 28 Jul 2011, at 08:00, Vassil Vassilev wrote:

> If we have usecase for people using it with C and Objective-{C|C++} I am willing to work on that


I'd be very interested in Objective-C support (with the GNU runtimes):

- We use Smalltalk for scripting Objective-C applications, but it would be nice to do the same with Objective-C
- Lots of people use F-Script or similar to test their understanding of Objective-C APIs, since it's trivial to write a few message sends.  It would be great if we could just pop up a transcript window that people could run Objective-C code in.

David

-- Sent from my Difference Engine

_______________________________________________
cfe-dev mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
Reply | Threaded
Open this post in threaded view
|

Re: cling

Axel Naumann
In reply to this post by Daniel DeCovnick
Hi Daniel,

On 07/28/2011 01:49 AM, Daniel DeCovnick wrote:
> How does it compare to ccons (http://code.google.com/p/ccons/),

Both looked at one another, but both took different routes in the end;
they have different abilities and do things differently behind the scenes.

E.g. cling has a never-ending translation unit, while ccons (if I
remember correctly) tries to import previous declarations into new
translation units that it then links in. One of the many examples.

ccons seems to not support C++.

> and any chance we could get C and

Supporting C should be somewhere between trivial and easy.

> Objective-C/Objective-C++ support eventually?

We tried to not deliberately exclude it :-) My experience with
ObjectiveC/C++ is too limited to estimate how much work it would be.

Cheers, Axel.

>
> On Jul 25, 2011, at 12:28 PM, Axel Naumann wrote:
>
>> Hi,
>>
>> As we announced before
>> <http://www.llvm.org/devmtg/2010-11/Naumann-Cling.pdf>, we (people from
>> CERN and Fermilab) are working on the C++ interpreter(*) cling
>> <http://cern.ch/cling> that's based on clang and llvm. This is in the
>> context of ROOT <http://root.cern.ch> and CINT
>> <http://root.cern.ch/cint>, our current C++ interpreter.
>>
>> We have gotten to a stage where we believe cling is actually useful: it
>> behaves like a regular interpreter!
>>
>> [cling]$ #include <cmath>
>> [cling]$ double x = std::sin(3.1)
>> (double) 4.158066e-02
>> [cling]$ .L libz
>> [cling]$ #include "zlib.h"
>> [cling]$ zlibVersion()
>> (const char * const) "1.2.3.4"
>>
>> or simply
>>
>> $ echo 'extern "C" const char* zlibVersion();
>> zlibVersion()' | cling -lz
>>
>> (const char * const) "1.2.3.4"
>>
>> and even
>>
>> $ cat t.cxx
>> #include "cling/Interpreter/Interpreter.h"
>> void t() {
>>   gCling->processLine("gCling->getVersion()");
>> }
>> $ cling
>> [cling]$ .x t.cxx
>> (const char * const) "$Id: Interpreter.cpp 40322 2011-07-21 14:20:14Z
>> axel $"
>>
>> We would like to know whether it's just us finding this spectacular :-)
>> or whether there is general interest. Our aim is to get it included in
>> the clang repository.
>>
>> For us, this is just the first step; we need to integrate it into the
>> rest of our software wildlife here at CERN, and we need to continue to
>> work on robustness and features, e.g. reloading of code. I.e. I expect
>> we will maintain and continue to develop it for years to come.
>>
>> Here is the code:
>> svn co http://root.cern.ch/svn/root/branches/dev/cling
>>
>> Let us know what you think!
>>
>> Best regards,
>> the cling team (Vassil, Philippe, Paul, Lukasz and Axel).
>>
>> (*) Yes, it's not an interpreter, it's really an incremental compiler
>> with an interactive shell with (eventually) features like automatic
>> library loading and late variable binding. But it smells like an
>> interpreter :-)
>> _______________________________________________
>> cfe-dev mailing list
>> [hidden email] <mailto:[hidden email]>
>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
>
_______________________________________________
cfe-dev mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
Reply | Threaded
Open this post in threaded view
|

Re: cling

David Chisnall-2
In reply to this post by David Chisnall
On 28 Jul 2011, at 10:14, David Chisnall wrote:

>> If we have usecase for people using it with C and Objective-{C|C++} I am willing to work on that
>
> I'd be very interested in Objective-C support (with the GNU runtimes):

Well, I started looking at what it would take to get Objective-C working, but unfortunately cling seems to fail with pretty trivial C code:

$ cling
.
**** Welcome to the cling prototype! ****
* Type C code and press enter to run it *
* Type .q, exit or ctrl+D to quit       *
*****************************************
[cling]$ .L trivial.c
cling: Constants.cpp:546: static llvm::ConstantFP* llvm::ConstantFP::get(llvm::LLVMContext&, const llvm::APFloat&): Assertion `&V.getSemantics() == &APFloat::PPCDoubleDouble && "Unknown FP format"' failed.
Aborted
$ cat trivial.c
double zero = 0.000000e+00;

David
_______________________________________________
cfe-dev mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
Reply | Threaded
Open this post in threaded view
|

Re: cling

Alexei Svitkine
FWIW, that works in ccons:

>>> double zero = 0.000000e+00;
>>> zero;
=> (double) 0.000000
>>>

One of my design goals in ccons was to be very faithful to C. For
example, for most things you need to use exact C syntax (e.g. needing
semicolons and such - something I believe cling isn't so strict
about). Even to exit the program, you just call exit(0); ;)

I think some of the early work in cling was based in some ways on
ccons, though now I see that it looks like most of it has been
refactored and rewritten - I could only find one file in cling that is
credited to my ccons code.

As a successor to my ccons prototype, the only thing I'd like to see
in cling is to have a mode that is strict and faithful to C (and
another to C++), without any CINT extensions.

-Alexei
_______________________________________________
cfe-dev mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
Reply | Threaded
Open this post in threaded view
|

Re: cling

Axel Naumann
Hi Alexei,

Great hearing from you!

On 07/29/2011 04:20 AM, Alexei Svitkine wrote:
> I think some of the early work in cling was based in some ways on
> ccons,

Absolutely! cling was turned inside out several times, and now the core
is stable and functional enough that we wanted to go "public". C++ is
not C ;-)

Btw, the missing semicolon you refer to is our way of signaling that you
want to see the result of an expression.

> As a successor to my ccons prototype, the only thing I'd like to see
> in cling is to have a mode that is strict and faithful to C (and
> another to C++), without any CINT extensions.

We absolutely agree. Disabling of extensions is currently only partially
implemented.

Thanks for your support back then that got us started, and for your
helpful comments now!

Cheers, Axel.
_______________________________________________
cfe-dev mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
Reply | Threaded
Open this post in threaded view
|

Re: cling

Vassil Vassilev
In reply to this post by David Chisnall-2
Hi David,
   Thanks for reporting!
   I believe that is fixed now.

cat /tmp/trivial.c
double zero = 0.000000e+00;
cling -x c

**** Welcome to the cling prototype! ****
* Type C code and press enter to run it *
* Type .q, exit or ctrl+D to quit       *
*****************************************
[cling]$ .L /tmp/trivial.c
[cling]$ #include <stdio.h>
[cling]$ printf("zero=%f\n", zero);
zero=0.000000
[cling]$

Vassil
On 07/28/2011 06:57 PM, David Chisnall wrote:

> On 28 Jul 2011, at 10:14, David Chisnall wrote:
>
>>> If we have usecase for people using it with C and Objective-{C|C++} I am willing to work on that
>> I'd be very interested in Objective-C support (with the GNU runtimes):
> Well, I started looking at what it would take to get Objective-C working, but unfortunately cling seems to fail with pretty trivial C code:
>
> $ cling
> .
> **** Welcome to the cling prototype! ****
> * Type C code and press enter to run it *
> * Type .q, exit or ctrl+D to quit       *
> *****************************************
> [cling]$ .L trivial.c
> cling: Constants.cpp:546: static llvm::ConstantFP* llvm::ConstantFP::get(llvm::LLVMContext&, const llvm::APFloat&): Assertion `&V.getSemantics() ==&APFloat::PPCDoubleDouble&&  "Unknown FP format"' failed.
> Aborted
> $ cat trivial.c
> double zero = 0.000000e+00;
>
> David

_______________________________________________
cfe-dev mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
Reply | Threaded
Open this post in threaded view
|

Re: cling

Vassil Vassilev
In reply to this post by Alexei Svitkine
Hi Alexei,
On 07/29/2011 04:20 AM, Alexei Svitkine wrote:
> As a successor to my ccons prototype, the only thing I'd like to see
> in cling is to have a mode that is strict and faithful to C (and
> another to C++), without any CINT extensions.
Completely agree to that. We should have modes, which can be called from
inside the interpreter (the MetaProcessor) to enable/disable different
extensions and so on. That is in my todo-list since a while.

Vassil
_______________________________________________
cfe-dev mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
Reply | Threaded
Open this post in threaded view
|

Re: cling error: no type named 'Interpreter' in namespace 'cling'; did you mean '::cling::Interpreter'?

RichardCatlin
In reply to this post by Axel Naumann
Subject: error: no type named 'Interpreter' in namespace 'cling'; did you mean '::cling::Interpreter'?

Hi,

I downloaded the Mac binary.  I get the following error when I run ./cling.

Any help is appreciated.

Regards,
Richard Catlin


SDGL11fd4f1cb:bin rcatlin1$ ./cling
ExecutionContext: use of undefined symbol '_ZN5cling7runtime8internal21__trigger__cxa_atexitD1Ev'!
ExecutionContext::runStaticInitializersOnce: symbol '_ZN5cling7runtime8internal21__trigger__cxa_atexitD1Ev' unresolved while linking static initializer '_GLOBAL__I_a'!
In file included from -:1:
input_line_3:1:45: error: no type named 'Interpreter' in namespace 'cling'; did you mean '::cling::Interpreter'?
namespace cling {namespace runtime { cling::Interpreter *gCling=(cling::Interpreter*)140734543633080;} }
                                     ~~~~~~~^~~~~~~~~~~
                                            ::cling::Interpreter
Stack dump:
0. input_line_3:1:45: current parser token 'Interpreter'
1. input_line_3:1:1: parsing namespace 'cling'
2. input_line_3:1:18: parsing namespace 'runtime'
Segmentation fault: 11
Reply | Threaded
Open this post in threaded view
|

Re: cling error: no type named 'Interpreter' in namespace 'cling'; did you mean '::cling::Interpreter'?

Vassil Vassilev-2
Hi Richard,
   I have filed a bugreport: https://sft.its.cern.ch/jira/browse/ROOT-5212
   Please build cling from source, until that issue is fixed.
Cheers,
Vassil
On 5/17/13 6:18 PM, RichardCatlin wrote:

> Subject: error: no type named 'Interpreter' in namespace 'cling'; did you
> mean '::cling::Interpreter'?
>
> Hi,
>
> I downloaded the Mac binary.  I get the following error when I run ./cling.
>
> Any help is appreciated.
>
> Regards,
> Richard Catlin
>
>
> SDGL11fd4f1cb:bin rcatlin1$ ./cling
> ExecutionContext: use of undefined symbol
> '_ZN5cling7runtime8internal21__trigger__cxa_atexitD1Ev'!
> ExecutionContext::runStaticInitializersOnce: symbol
> '_ZN5cling7runtime8internal21__trigger__cxa_atexitD1Ev' unresolved while
> linking static initializer '_GLOBAL__I_a'!
> In file included from -:1:
> input_line_3:1:45: error: no type named 'Interpreter' in namespace 'cling';
> did you mean '::cling::Interpreter'?
> namespace cling {namespace runtime { cling::Interpreter
> *gCling=(cling::Interpreter*)140734543633080;} }
>                                       ~~~~~~~^~~~~~~~~~~
>                                              ::cling::Interpreter
> Stack dump:
> 0. input_line_3:1:45: current parser token 'Interpreter'
> 1. input_line_3:1:1: parsing namespace 'cling'
> 2. input_line_3:1:18: parsing namespace 'runtime'
> Segmentation fault: 11
>
>
>
> --
> View this message in context: http://clang-developers.42468.n3.nabble.com/cling-tp3198446p4032174.html
> Sent from the Clang Developers mailing list archive at Nabble.com.
> _______________________________________________
> cfe-dev mailing list
> [hidden email]
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev

_______________________________________________
cfe-dev mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
Reply | Threaded
Open this post in threaded view
|

Fwd: cling error: no type named 'Interpreter' in namespace 'cling'; did you mean '::cling::Interpreter'?

RichardCatlin


---------- Forwarded message ----------
From: Richard Catlin <[hidden email]>
Date: Sat, May 18, 2013 at 10:10 AM
Subject: Re: [cfe-dev] cling error: no type named 'Interpreter' in namespace 'cling'; did you mean '::cling::Interpreter'?
To: Vassil Vassilev <[hidden email]>


Vassil,

I tried to build from source also, but get this error.  I tried both on Lion and Mountain Lion.  I am using the svn repo for llvm, clang.  Here is the error below.  I am attaching the configure log file also.

Any idea?  I am really anxious to try cling, as an LLVM developer.  I use LLVM as the runtime for a DSL.

Thank you.
Richard Catlin

llvm[4]: Compiling ParseDecl.cpp for Debug+Asserts build
llvm[4]: Compiling ParseDeclCXX.cpp for Debug+Asserts build
llvm[4]: Compiling ParseExpr.cpp for Debug+Asserts build
llvm[4]: Compiling ParseExprCXX.cpp for Debug+Asserts build
llvm[4]: Compiling ParseInit.cpp for Debug+Asserts build
llvm[4]: Compiling ParseObjc.cpp for Debug+Asserts build
llvm[4]: Compiling ParseOpenMP.cpp for Debug+Asserts build
llvm[4]: Compiling ParsePragma.cpp for Debug+Asserts build
llvm[4]: Compiling ParseStmt.cpp for Debug+Asserts build
llvm[4]: Compiling ParseTemplate.cpp for Debug+Asserts build
llvm[4]: Compiling ParseTentative.cpp for Debug+Asserts build
llvm[4]: Compiling Parser.cpp for Debug+Asserts build
/Users/rcatlin1/cling-dev/llvm/tools/clang/lib/Parse/Parser.cpp:548:39: error: variable has incomplete type 'clang::DestroyTemplateIdAnnotationsRAIIObj'
  DestroyTemplateIdAnnotationsRAIIObj CleanupRAII(*this);
                                      ^
/Users/rcatlin1/cling-dev/llvm/tools/clang/lib/Parse/../../include/clang/Parse/Parser.h:48:9: note: forward declaration of 'clang::DestroyTemplateIdAnnotationsRAIIObj'
  class DestroyTemplateIdAnnotationsRAIIObj;
        ^
/Users/rcatlin1/cling-dev/llvm/tools/clang/lib/Parse/Parser.cpp:602:39: error: variable has incomplete type 'clang::DestroyTemplateIdAnnotationsRAIIObj'
  DestroyTemplateIdAnnotationsRAIIObj CleanupRAII(*this);
                                      ^
/Users/rcatlin1/cling-dev/llvm/tools/clang/lib/Parse/../../include/clang/Parse/Parser.h:48:9: note: forward declaration of 'clang::DestroyTemplateIdAnnotationsRAIIObj'
  class DestroyTemplateIdAnnotationsRAIIObj;
        ^
2 errors generated.
make[4]: *** [/Users/rcatlin1/cling-dev/build/tools/clang/lib/Parse/Debug+Asserts/Parser.o] Error 1
make[3]: *** [Parse/.makeall] Error 2
make[2]: *** [all] Error 1
make[1]: *** [clang/.makeall] Error 2
make: *** [all] Error 1



On Sat, May 18, 2013 at 6:12 AM, Vassil Vassilev <[hidden email]> wrote:
Hi Richard,
  I have filed a bugreport: https://sft.its.cern.ch/jira/browse/ROOT-5212
  Please build cling from source, until that issue is fixed.
Cheers,
Vassil
On 5/17/13 6:18 PM, RichardCatlin wrote:
Subject: error: no type named 'Interpreter' in namespace 'cling'; did you
mean '::cling::Interpreter'?

Hi,

I downloaded the Mac binary.  I get the following error when I run ./cling.

Any help is appreciated.

Regards,
Richard Catlin


SDGL11fd4f1cb:bin rcatlin1$ ./cling
ExecutionContext: use of undefined symbol
'_ZN5cling7runtime8internal21__trigger__cxa_atexitD1Ev'!
ExecutionContext::runStaticInitializersOnce: symbol
'_ZN5cling7runtime8internal21__trigger__cxa_atexitD1Ev' unresolved while
linking static initializer '_GLOBAL__I_a'!
In file included from -:1:
input_line_3:1:45: error: no type named 'Interpreter' in namespace 'cling';
did you mean '::cling::Interpreter'?
namespace cling {namespace runtime { cling::Interpreter
*gCling=(cling::Interpreter*)140734543633080;} }
                                      ~~~~~~~^~~~~~~~~~~
                                             ::cling::Interpreter
Stack dump:
0.      input_line_3:1:45: current parser token 'Interpreter'
1.      input_line_3:1:1: parsing namespace 'cling'
2.      input_line_3:1:18: parsing namespace 'runtime'
Segmentation fault: 11



--
View this message in context: http://clang-developers.42468.n3.nabble.com/cling-tp3198446p4032174.html
Sent from the Clang Developers mailing list archive at Nabble.com.
_______________________________________________
cfe-dev mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev




_______________________________________________
cfe-dev mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev

configure.log (33K) Download Attachment
configure.log (33K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Fwd: cling error: no type named 'Interpreter' in namespace 'cling'; did you mean '::cling::Interpreter'?

RichardCatlin
In reply to this post by Vassil Vassilev-2


---------- Forwarded message ----------
From: Richard Catlin <[hidden email]>
Date: Sat, May 18, 2013 at 12:00 PM
Subject: Re: [cfe-dev] cling error: no type named 'Interpreter' in namespace 'cling'; did you mean '::cling::Interpreter'?
To: Vassil Vassilev <[hidden email]>


Vassil,

Thanks.  I can now get to the Cling shell.

Regards,
Richard Catlin


On Sat, May 18, 2013 at 10:59 AM, Vassil Vassilev <[hidden email]> wrote:
Hi,
  You should download the cling-compatible versions of clang and llvm. It can be found here: http://root.cern.ch/viewvc/trunk/interpreter/cling/LastKnownGoodLLVMSVNRevision.txt?view=markup
  I have updated the documentation as well.
Sorry for the inconvenience,
Vassil
On 5/18/13 11:17 AM, Richard Catlin wrote:
Vassil,

I followed the instructions on this page.

I applied the patches:
cat tools/cling/patches/*.diff | patch -p0
Regards,
Richard

        


On Sat, May 18, 2013 at 10:12 AM, Vassil Vassilev <[hidden email]> wrote:
Hi Richard,
  Thanks for trying. Did you apply the patches in cling_src/patches?
Cheers,
Vassil
PS: are you still in Aspen?
On 5/18/13 11:10 AM, Richard Catlin wrote:
Vassil,

I tried to build from source also, but get this error.  I tried both on Lion and Mountain Lion.  I am using the svn repo for llvm, clang.  Here is the error below.  I am attaching the configure log file also.

Any idea?  I am really anxious to try cling, as an LLVM developer.  I use LLVM as the runtime for a DSL.

Thank you.
Richard Catlin

llvm[4]: Compiling ParseDecl.cpp for Debug+Asserts build
llvm[4]: Compiling ParseDeclCXX.cpp for Debug+Asserts build
llvm[4]: Compiling ParseExpr.cpp for Debug+Asserts build
llvm[4]: Compiling ParseExprCXX.cpp for Debug+Asserts build
llvm[4]: Compiling ParseInit.cpp for Debug+Asserts build
llvm[4]: Compiling ParseObjc.cpp for Debug+Asserts build
llvm[4]: Compiling ParseOpenMP.cpp for Debug+Asserts build
llvm[4]: Compiling ParsePragma.cpp for Debug+Asserts build
llvm[4]: Compiling ParseStmt.cpp for Debug+Asserts build
llvm[4]: Compiling ParseTemplate.cpp for Debug+Asserts build
llvm[4]: Compiling ParseTentative.cpp for Debug+Asserts build
llvm[4]: Compiling Parser.cpp for Debug+Asserts build
/Users/rcatlin1/cling-dev/llvm/tools/clang/lib/Parse/Parser.cpp:548:39: error: variable has incomplete type 'clang::DestroyTemplateIdAnnotationsRAIIObj'
  DestroyTemplateIdAnnotationsRAIIObj CleanupRAII(*this);
                                      ^
/Users/rcatlin1/cling-dev/llvm/tools/clang/lib/Parse/../../include/clang/Parse/Parser.h:48:9: note: forward declaration of 'clang::DestroyTemplateIdAnnotationsRAIIObj'
  class DestroyTemplateIdAnnotationsRAIIObj;
        ^
/Users/rcatlin1/cling-dev/llvm/tools/clang/lib/Parse/Parser.cpp:602:39: error: variable has incomplete type 'clang::DestroyTemplateIdAnnotationsRAIIObj'
  DestroyTemplateIdAnnotationsRAIIObj CleanupRAII(*this);
                                      ^
/Users/rcatlin1/cling-dev/llvm/tools/clang/lib/Parse/../../include/clang/Parse/Parser.h:48:9: note: forward declaration of 'clang::DestroyTemplateIdAnnotationsRAIIObj'
  class DestroyTemplateIdAnnotationsRAIIObj;
        ^
2 errors generated.
make[4]: *** [/Users/rcatlin1/cling-dev/build/tools/clang/lib/Parse/Debug+Asserts/Parser.o] Error 1
make[3]: *** [Parse/.makeall] Error 2
make[2]: *** [all] Error 1
make[1]: *** [clang/.makeall] Error 2
make: *** [all] Error 1



On Sat, May 18, 2013 at 6:12 AM, Vassil Vassilev <[hidden email]> wrote:
Hi Richard,
  I have filed a bugreport: https://sft.its.cern.ch/jira/browse/ROOT-5212
  Please build cling from source, until that issue is fixed.
Cheers,
Vassil
On 5/17/13 6:18 PM, RichardCatlin wrote:
Subject: error: no type named 'Interpreter' in namespace 'cling'; did you
mean '::cling::Interpreter'?

Hi,

I downloaded the Mac binary.  I get the following error when I run ./cling.

Any help is appreciated.

Regards,
Richard Catlin


SDGL11fd4f1cb:bin rcatlin1$ ./cling
ExecutionContext: use of undefined symbol
'_ZN5cling7runtime8internal21__trigger__cxa_atexitD1Ev'!
ExecutionContext::runStaticInitializersOnce: symbol
'_ZN5cling7runtime8internal21__trigger__cxa_atexitD1Ev' unresolved while
linking static initializer '_GLOBAL__I_a'!
In file included from -:1:
input_line_3:1:45: error: no type named 'Interpreter' in namespace 'cling';
did you mean '::cling::Interpreter'?
namespace cling {namespace runtime { cling::Interpreter
*gCling=(cling::Interpreter*)140734543633080;} }
                                      ~~~~~~~^~~~~~~~~~~
                                             ::cling::Interpreter
Stack dump:
0.      input_line_3:1:45: current parser token 'Interpreter'
1.      input_line_3:1:1: parsing namespace 'cling'
2.      input_line_3:1:18: parsing namespace 'runtime'
Segmentation fault: 11



--
View this message in context: http://clang-developers.42468.n3.nabble.com/cling-tp3198446p4032174.html
Sent from the Clang Developers mailing list archive at Nabble.com.
_______________________________________________
cfe-dev mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev








_______________________________________________
cfe-dev mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev