'Implementing a language with LLVM' tutorial

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
23 messages Options
12
Reply | Threaded
Open this post in threaded view
|

'Implementing a language with LLVM' tutorial

Chris Lattner-2
Hi All,

LLVM has long needed a tutorial for people who are interested in using  
it to implement their favorite language and to demonstrate how to use  
the JIT.  To help solve this, I've put together a little tutorial that  
runs through the implementation and extension of a toy language here:

   http://llvm.org/docs/tutorial/

At this point, the tutorial is feature complete, but might still need  
some final editing.  Before I try to get other sites to link to it, I  
thought it would be good to get some more eyeballs on it and get some  
thoughts and feedback from you.

Anyone have thoughts or feedback? :)

-Chris
_______________________________________________
LLVM Developers mailing list
[hidden email]         http://llvm.cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
Reply | Threaded
Open this post in threaded view
|

Re: 'Implementing a language with LLVM' tutorial

AaronNGray
> Hi All,
>
> LLVM has long needed a tutorial for people who are interested in using
> it to implement their favorite language and to demonstrate how to use
> the JIT.  To help solve this, I've put together a little tutorial that
> runs through the implementation and extension of a toy language here:
>
>   http://llvm.org/docs/tutorial/
>
> At this point, the tutorial is feature complete, but might still need
> some final editing.  Before I try to get other sites to link to it, I
> thought it would be good to get some more eyeballs on it and get some
> thoughts and feedback from you.
>
> Anyone have thoughts or feedback? :)

Nice job. The only bit that is not immediately clear is the 'Proto'
variable, but is clear when looking through the code at the end of the page.

Could do with a link to the LLVMBuilder class reference material.

Thanks,

Aaron

_______________________________________________
LLVM Developers mailing list
[hidden email]         http://llvm.cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
Reply | Threaded
Open this post in threaded view
|

Re: 'Implementing a language with LLVM' tutorial

Török Edwin
In reply to this post by Chris Lattner-2
On 11/5/07, Chris Lattner <[hidden email]> wrote:
> Hi All,

Hi,

>
>    http://llvm.org/docs/tutorial/

Very interesting tutorial, reading it now :)

> Anyone have thoughts or feedback? :)

There's a typo in http://llvm.org/docs/tutorial/LangImpl5.html
"the Phi node expects to have an extry" s/extry/entry/

Best regards,
Edwin
_______________________________________________
LLVM Developers mailing list
[hidden email]         http://llvm.cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
Reply | Threaded
Open this post in threaded view
|

Re: 'Implementing a language with LLVM' tutorial

HyperQuantum
In reply to this post by Chris Lattner-2
On 11/5/07, Chris Lattner <[hidden email]> wrote:

>    http://llvm.org/docs/tutorial/

> Anyone have thoughts or feedback? :)

Found some typos in LangImpl2.html:

/// identifierexpr
///   ::= identifer
///   ::= identifer '(' expression* ')'


HTH,
Kevin André

_______________________________________________
LLVM Developers mailing list
[hidden email]         http://llvm.cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
Reply | Threaded
Open this post in threaded view
|

Re: 'Implementing a language with LLVM' tutorial

Basile Starynkevitch
In reply to this post by Chris Lattner-2
Chris Lattner wrote:
> Hi All,
>
> LLVM has long needed a tutorial for people who are interested in using  
> it to implement their favorite language and to demonstrate how to use  
> the JIT.  To help solve this, I've put together a little tutorial that  
> runs through the implementation and extension of a toy language here:
>
>    http://llvm.org/docs/tutorial/

A big thanks for it.  I had just a glance on it (some I may be wrong)
but I would find nice an exact explanation of
llvm/examples/HowToUseJIT/ in particular it seems that the exact way of
calling the just JIT-ed code is skipped in this tutorial. Maybe I missed
some link.

Again, a big thanks to Chris !


--
Basile STARYNKEVITCH         http://starynkevitch.net/Basile/
email: basile<at>starynkevitch<dot>net mobile: +33 6 8501 2359
8, rue de la Faiencerie, 92340 Bourg La Reine, France
*** opinions {are only mines, sont seulement les miennes} ***
_______________________________________________
LLVM Developers mailing list
[hidden email]         http://llvm.cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
Reply | Threaded
Open this post in threaded view
|

Re: 'Implementing a language with LLVM' tutorial

Vikram S. Adve
In reply to this post by Chris Lattner-2
Nice work, Chris!  This is a much needed tutorial.  Some comments:

-- It would be helpful to add some navigation links at the top and bottom of the pages. 

-- Not clear why PrototypeAST::Codegen returns a Function* instead of a Value* like the other CodeGen methods?

-- It can be convenient to use Visitor methods on the AST classes for code generation, instead of hard-coding the CodeGen methods into the AST classes.  Many languages will need other traversals besides the CodeGen operations, e.g., for type checking, class layout, etc.

-- In the optimization section, how much code size reduction have you seen in practice by doing constant folding in the LLVMFoldingBuilder (instead of just letting the later optimization pass take care of it)?

-- One of the harder parts is generating type declarations correctly for recursively connected types (e.g., for classes).  Without extending Kaleidoscope, it would be be helpful to add a link to the Programmers Manual section on recursive type construction.



On Nov 5, 2007, at 1:14 AM, Chris Lattner wrote:

Hi All,

LLVM has long needed a tutorial for people who are interested in using
it to implement their favorite language and to demonstrate how to use
the JIT.  To help solve this, I've put together a little tutorial that
runs through the implementation and extension of a toy language here:


At this point, the tutorial is feature complete, but might still need
some final editing.  Before I try to get other sites to link to it, I
thought it would be good to get some more eyeballs on it and get some
thoughts and feedback from you.

Anyone have thoughts or feedback? :)

-Chris
_______________________________________________
LLVM Developers mailing list


_______________________________________________
LLVM Developers mailing list
[hidden email]         http://llvm.cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
Reply | Threaded
Open this post in threaded view
|

Re: 'Implementing a language with LLVM' tutorial

Ralph Corderoy
In reply to this post by Török Edwin

Hi Chris,

[hidden email] wrote:
> On 11/5/07, Chris Lattner <[hidden email]> wrote:
> >    http://llvm.org/docs/tutorial/
>
> There's a typo in http://llvm.org/docs/tutorial/LangImpl5.html
> "the Phi node expects to have an extry" s/extry/entry/

And elsewhere it has "an function" as the output of a.out despite the
source saying "a function".

Cheers,


Ralph.

_______________________________________________
LLVM Developers mailing list
[hidden email]         http://llvm.cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
Reply | Threaded
Open this post in threaded view
|

Re: 'Implementing a language with LLVM' tutorial

Chris Lattner
In reply to this post by AaronNGray
On Mon, 5 Nov 2007, Aaron Gray wrote:
>> Anyone have thoughts or feedback? :)
>
> Nice job. The only bit that is not immediately clear is the 'Proto'
> variable, but is clear when looking through the code at the end of the page.

Where in the tutorial?  What would you suggest that I say?

> Could do with a link to the LLVMBuilder class reference material.

I added a link to the doxygen info, thanks!

-Chris

--
http://nondot.org/sabre/
http://llvm.org/
_______________________________________________
LLVM Developers mailing list
[hidden email]         http://llvm.cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
Reply | Threaded
Open this post in threaded view
|

Re: 'Implementing a language with LLVM' tutorial

Chris Lattner
In reply to this post by Vikram S. Adve
On Mon, 5 Nov 2007, Vikram S. Adve wrote:
> -- It would be helpful to add some navigation links at the top and bottom of
> the pages.

I added a TOC to each chapter, thanks.

> -- Not clear why PrototypeAST::Codegen returns a Function* instead of a
> Value* like the other CodeGen methods?

I clarified this in the text.  The short version is that PrototypeAST
doesn't correspond to an expression value.

> -- It can be convenient to use Visitor methods on the AST classes for code
> generation, instead of hard-coding the CodeGen methods into the AST classes.
> Many languages will need other traversals besides the CodeGen operations,
> e.g., for type checking, class layout, etc.

Yep, the tutorial also leaks memory, uses global variables, and commits a
number of other sins against good software engineering practice.  However,
I added a mention of the possibility of using a visitor to the text.

> -- In the optimization section, how much code size reduction have you seen in
> practice by doing constant folding in the LLVMFoldingBuilder (instead of just
> letting the later optimization pass take care of it)?

Depends on the language.  For C, it can be significant.  In any case,
there is no reason not to use the folding builder, so it doesn't hurt
anything.

> -- One of the harder parts is generating type declarations correctly for
> recursively connected types (e.g., for classes).  Without extending
> Kaleidoscope, it would be be helpful to add a link to the Programmers Manual
> section on recursive type construction.

I added a link to chapter 8, thanks for the feedback!

-Chris

>
> On Nov 5, 2007, at 1:14 AM, Chris Lattner wrote:
>
>>  Hi All,
>>
>>  LLVM has long needed a tutorial for people who are interested in using
>>  it to implement their favorite language and to demonstrate how to use
>>  the JIT.  To help solve this, I've put together a little tutorial that
>>  runs through the implementation and extension of a toy language here:
>>
>>     http://llvm.org/docs/tutorial/
>>
>>  At this point, the tutorial is feature complete, but might still need
>>  some final editing.  Before I try to get other sites to link to it, I
>>  thought it would be good to get some more eyeballs on it and get some
>>  thoughts and feedback from you.
>>
>>  Anyone have thoughts or feedback? :)
>>
>>  -Chris
>>  _______________________________________________
>>  LLVM Developers mailing list
>>  [hidden email]         http://llvm.cs.uiuc.edu
>>  http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
>
>

-Chris

--
http://nondot.org/sabre/
http://llvm.org/
_______________________________________________
LLVM Developers mailing list
[hidden email]         http://llvm.cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
Reply | Threaded
Open this post in threaded view
|

Re: 'Implementing a language with LLVM' tutorial

Kelly Wilson-2
In reply to this post by Chris Lattner-2
Hi Chris,

I edited "The basic language, with its lexer" somewhat and I am
attaching a .html file. This is simply spelling/grammar editing and not
content.

It includes a few small changes to things like - ending a sentence with
a noun and starting the next sentence with the same noun, clarifying
some statements, not using "and" too many times in a sentence...little
things like that.

A simple diff should show the changes. Please let me know if this format
(ie. html file) is acceptable for your use. I don't think I changed
anything too drastically, but please let me know if I took too many
liberties. You may also tell me not to be so picky, if you like ;)

Thanks,
K.Wilson

P.S. Good work. This is a well written and much needed tutorial.


On Sun, 2007-11-04 at 23:14 -0800, Chris Lattner wrote:

> Hi All,
>
> LLVM has long needed a tutorial for people who are interested in using  
> it to implement their favorite language and to demonstrate how to use  
> the JIT.  To help solve this, I've put together a little tutorial that  
> runs through the implementation and extension of a toy language here:
>
>    http://llvm.org/docs/tutorial/
>
> At this point, the tutorial is feature complete, but might still need  
> some final editing.  Before I try to get other sites to link to it, I  
> thought it would be good to get some more eyeballs on it and get some  
> thoughts and feedback from you.
>
> Anyone have thoughts or feedback? :)
>
> -Chris
> _______________________________________________
> LLVM Developers mailing list
> [hidden email]         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev

_______________________________________________
LLVM Developers mailing list
[hidden email]         http://llvm.cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev

LangImpl1.html (9K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: 'Implementing a language with LLVM' tutorial

Basile Starynkevitch
In reply to this post by Chris Lattner
Chris Lattner wrote:
> On Mon, 5 Nov 2007, Vikram S. Adve wrote:
>> -- It would be helpful to add some navigation links at the top and bottom of
>> the pages.
>
> I added a TOC to each chapter, thanks.

May I also suggest adding to each HTML page a link to the topmost
http://llvm.org/docs/tutorial/

--
Basile STARYNKEVITCH         http://starynkevitch.net/Basile/
email: basile<at>starynkevitch<dot>net mobile: +33 6 8501 2359
8, rue de la Faiencerie, 92340 Bourg La Reine, France
*** opinions {are only mines, sont seulement les miennes} ***
_______________________________________________
LLVM Developers mailing list
[hidden email]         http://llvm.cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
Reply | Threaded
Open this post in threaded view
|

Re: 'Implementing a language with LLVM' tutorial

Chris Lattner
On Mon, 5 Nov 2007, Basile STARYNKEVITCH wrote:
>> I added a TOC to each chapter, thanks.
>
> May I also suggest adding to each HTML page a link to the topmost
> http://llvm.org/docs/tutorial/

Done, thanks!

-Chris

--
http://nondot.org/sabre/
http://llvm.org/
_______________________________________________
LLVM Developers mailing list
[hidden email]         http://llvm.cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
Reply | Threaded
Open this post in threaded view
|

Re: 'Implementing a language with LLVM' tutorial

Chris Lattner
In reply to this post by Kelly Wilson-2
On Mon, 5 Nov 2007, Kelly Wilson wrote:
> I edited "The basic language, with its lexer" somewhat and I am
> attaching a .html file. This is simply spelling/grammar editing and not
> content.

Thanks, I merged them in!

> A simple diff should show the changes. Please let me know if this format
> (ie. html file) is acceptable for your use. I don't think I changed
> anything too drastically, but please let me know if I took too many
> liberties. You may also tell me not to be so picky, if you like ;)

All the changes you made look great, I appreciate it.  If you are
interested in making future changes, please send me a diff of the change
you make.  This makes it easier for me, because I don't know which version
of the file you started from, making it harder to pull the difference out
on my end.

Thanks again!

-Chris

--
http://nondot.org/sabre/
http://llvm.org/
_______________________________________________
LLVM Developers mailing list
[hidden email]         http://llvm.cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
Reply | Threaded
Open this post in threaded view
|

Re: 'Implementing a language with LLVM' tutorial

Ryan Brown-4
In reply to this post by Chris Lattner
Very nice.  Here's a couple comments on the first 6 chapters:
http://llvm.org/docs/tutorial/LangImpl1.html
"We handle comments by skipping to the end of the line and then
returning the next comment."

Shouldn't this say "returning the next comment"?

http://llvm.org/docs/tutorial/LangImpl2.html
I was a bit confused at first because the AST node classes are called
ASTs. Instead of saying "ExprAST node" all the time, who not just call
the class ExprNode or ExprAstNode?

http://llvm.org/docs/tutorial/LangImpl3.html
  case '<':
    L = Builder.CreateFCmpULT(L, R, "multmp");
Should this be something like "cmptmp"?

Also, you mention zero-argument functions, but it doesn't look like
you can parse function calls with zero arguments.


http://llvm.org/docs/tutorial/LangImpl5.html
At this point, you are probably starting to think "on no!
Should be "Oh no"

There's no link to the next chapter at the end of this chapter.

On 11/5/07, Chris Lattner <[hidden email]> wrote:

> On Mon, 5 Nov 2007, Aaron Gray wrote:
> >> Anyone have thoughts or feedback? :)
> >
> > Nice job. The only bit that is not immediately clear is the 'Proto'
> > variable, but is clear when looking through the code at the end of the page.
>
> Where in the tutorial?  What would you suggest that I say?
>
> > Could do with a link to the LLVMBuilder class reference material.
>
> I added a link to the doxygen info, thanks!
>
> -Chris
>
> --
> http://nondot.org/sabre/
> http://llvm.org/
> _______________________________________________
> LLVM Developers mailing list
> [hidden email]         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>


--
Ryan Brown
Gws UI Team
_______________________________________________
LLVM Developers mailing list
[hidden email]         http://llvm.cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
Reply | Threaded
Open this post in threaded view
|

Re: 'Implementing a language with LLVM' tutorial

Ryan Brown-4
Also it looks like there's a typo in ch 8:
As one trivial example, it is possible to add language-specific
optimization passes that "known" things about code compiled for a
language.

Should say [passes that "know" things].

On 11/5/07, Ryan Brown <[hidden email]> wrote:

> Very nice.  Here's a couple comments on the first 6 chapters:
> http://llvm.org/docs/tutorial/LangImpl1.html
> "We handle comments by skipping to the end of the line and then
> returning the next comment."
>
> Shouldn't this say "returning the next comment"?
>
> http://llvm.org/docs/tutorial/LangImpl2.html
> I was a bit confused at first because the AST node classes are called
> ASTs. Instead of saying "ExprAST node" all the time, who not just call
> the class ExprNode or ExprAstNode?
>
> http://llvm.org/docs/tutorial/LangImpl3.html
>   case '<':
>     L = Builder.CreateFCmpULT(L, R, "multmp");
> Should this be something like "cmptmp"?
>
> Also, you mention zero-argument functions, but it doesn't look like
> you can parse function calls with zero arguments.
>
>
> http://llvm.org/docs/tutorial/LangImpl5.html
> At this point, you are probably starting to think "on no!
> Should be "Oh no"
>
> There's no link to the next chapter at the end of this chapter.
>
>
> On 11/5/07, Chris Lattner <[hidden email]> wrote:
> > On Mon, 5 Nov 2007, Aaron Gray wrote:
> > >> Anyone have thoughts or feedback? :)
> > >
> > > Nice job. The only bit that is not immediately clear is the 'Proto'
> > > variable, but is clear when looking through the code at the end of the page.
> >
> > Where in the tutorial?  What would you suggest that I say?
> >
> > > Could do with a link to the LLVMBuilder class reference material.
> >
> > I added a link to the doxygen info, thanks!
> >
> > -Chris
> >
> > --
> > http://nondot.org/sabre/
> > http://llvm.org/
> > _______________________________________________
> > LLVM Developers mailing list
> > [hidden email]         http://llvm.cs.uiuc.edu
> > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
> >
>
>
>
> --
> Ryan Brown
> Gws UI Team
>


--
Ryan Brown
Gws UI Team
_______________________________________________
LLVM Developers mailing list
[hidden email]         http://llvm.cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
Reply | Threaded
Open this post in threaded view
|

Re: 'Implementing a language with LLVM' tutorial

Chris Lattner
In reply to this post by Ryan Brown-4
On Mon, 5 Nov 2007, Ryan Brown wrote:
> Very nice.  Here's a couple comments on the first 6 chapters:
> http://llvm.org/docs/tutorial/LangImpl1.html
> "We handle comments by skipping to the end of the line and then
> returning the next comment."
>
> Shouldn't this say "returning the next comment"?

Fixed.

> http://llvm.org/docs/tutorial/LangImpl2.html
> I was a bit confused at first because the AST node classes are called
> ASTs. Instead of saying "ExprAST node" all the time, who not just call
> the class ExprNode or ExprAstNode?

I don't think ExprNode or ExprASTNode is more clear than ExprAST.
"ExprAST" is the right thing because they are AST's and they are Expr
specific.

> http://llvm.org/docs/tutorial/LangImpl3.html
>  case '<':
>    L = Builder.CreateFCmpULT(L, R, "multmp");
> Should this be something like "cmptmp"?

What a pain.  Fixed :)

> Also, you mention zero-argument functions, but it doesn't look like
> you can parse function calls with zero arguments.

Also painful to fix, but also fixed.  Thanks.

> http://llvm.org/docs/tutorial/LangImpl5.html
> At this point, you are probably starting to think "on no!
> Should be "Oh no"

Fixed

> There's no link to the next chapter at the end of this chapter.

Fixed.

Thanks Ryan,

-Chris

> On 11/5/07, Chris Lattner <[hidden email]> wrote:
>> On Mon, 5 Nov 2007, Aaron Gray wrote:
>>>> Anyone have thoughts or feedback? :)
>>>
>>> Nice job. The only bit that is not immediately clear is the 'Proto'
>>> variable, but is clear when looking through the code at the end of the page.
>>
>> Where in the tutorial?  What would you suggest that I say?
>>
>>> Could do with a link to the LLVMBuilder class reference material.
>>
>> I added a link to the doxygen info, thanks!
>>
>> -Chris
>>
>> --
>> http://nondot.org/sabre/
>> http://llvm.org/
>> _______________________________________________
>> LLVM Developers mailing list
>> [hidden email]         http://llvm.cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>>
>
>
>

-Chris

--
http://nondot.org/sabre/
http://llvm.org/
_______________________________________________
LLVM Developers mailing list
[hidden email]         http://llvm.cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
Reply | Threaded
Open this post in threaded view
|

Re: 'Implementing a language with LLVM' tutorial

AaronNGray
In reply to this post by Chris Lattner
> On Mon, 5 Nov 2007, Aaron Gray wrote:
>> Nice job. The only bit that is not immediately clear is the 'Proto'
>> variable, but is clear when looking through the code at the end of the
>> page.
>
> Where in the tutorial?  What would you suggest that I say?

First reference in 'Function *FunctionAST::Codegen()'. What Proto is is not
totally clear till you look at the complete code at the end of the page. A
minor point.

>> Could do with a link to the LLVMBuilder class reference material.
>
> I added a link to the doxygen info, thanks!

It might be an idea to add a download link for the complete code to save
user having to cut and paste it to try it. A minor point.

Aaron

_______________________________________________
LLVM Developers mailing list
[hidden email]         http://llvm.cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
Reply | Threaded
Open this post in threaded view
|

Re: 'Implementing a language with LLVM' tutorial

Chris Lattner

On Nov 5, 2007, at 6:05 PM, Aaron Gray wrote:

>> On Mon, 5 Nov 2007, Aaron Gray wrote:
>>> Nice job. The only bit that is not immediately clear is the 'Proto'
>>> variable, but is clear when looking through the code at the end of  
>>> the
>>> page.
>>
>> Where in the tutorial?  What would you suggest that I say?
>
> First reference in 'Function *FunctionAST::Codegen()'. What Proto is  
> is not
> totally clear till you look at the complete code at the end of the  
> page. A
> minor point.

It's still unclear where you are talking about this.  I clarified the  
prose in chapter 3 that first describes FunctionAST::Codegen.  If you  
still think it is unclear, please propose new wording, thanks!

>>> Could do with a link to the LLVMBuilder class reference material.
>>
>> I added a link to the doxygen info, thanks!
>
> It might be an idea to add a download link for the complete code to  
> save
> user having to cut and paste it to try it. A minor point.

As I told Owen: "If the user can't copy and paste, there is no hope  
for them".  It's not worth the burden to maintain yet another copy of  
every piece of source that has to be updated when changes are made.

-Chris
_______________________________________________
LLVM Developers mailing list
[hidden email]         http://llvm.cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
Reply | Threaded
Open this post in threaded view
|

Re: 'Implementing a language with LLVM' tutorial

Kelly Wilson-2
In reply to this post by Chris Lattner
Hello Chris,

I have finished with the "Implementing a Parser and AST" chapter and
attached a diff file. Once again, let me know if the format of the diff
is not acceptable (ie. I used subdirs for the two different files and a
'diff -ru'....).

Minor fixes again, no content modifications.

Thanks,
K.Wilson

On Mon, 2007-11-05 at 12:27 -0800, Chris Lattner wrote:

> On Mon, 5 Nov 2007, Kelly Wilson wrote:
> > I edited "The basic language, with its lexer" somewhat and I am
> > attaching a .html file. This is simply spelling/grammar editing and not
> > content.
>
> Thanks, I merged them in!
>
> > A simple diff should show the changes. Please let me know if this format
> > (ie. html file) is acceptable for your use. I don't think I changed
> > anything too drastically, but please let me know if I took too many
> > liberties. You may also tell me not to be so picky, if you like ;)
>
> All the changes you made look great, I appreciate it.  If you are
> interested in making future changes, please send me a diff of the change
> you make.  This makes it easier for me, because I don't know which version
> of the file you started from, making it harder to pull the difference out
> on my end.
>
> Thanks again!
>
> -Chris
>

_______________________________________________
LLVM Developers mailing list
[hidden email]         http://llvm.cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev

LangImpl2.diff (11K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: 'Implementing a language with LLVM' tutorial

Kelly Wilson-2
In reply to this post by Chris Lattner-2
Hey Chris:

Here are the diffs for the next few chapters of the tutorial that I have
edited. Please note that there is one recurring fix (straight-forward is
changed to straightforward). Once again, these are simple changes, not
including any real content changes.

Thanks,
K.Wilson


On Sun, 2007-11-04 at 23:14 -0800, Chris Lattner wrote:

> Hi All,
>
> LLVM has long needed a tutorial for people who are interested in using  
> it to implement their favorite language and to demonstrate how to use  
> the JIT.  To help solve this, I've put together a little tutorial that  
> runs through the implementation and extension of a toy language here:
>
>    http://llvm.org/docs/tutorial/
>
> At this point, the tutorial is feature complete, but might still need  
> some final editing.  Before I try to get other sites to link to it, I  
> thought it would be good to get some more eyeballs on it and get some  
> thoughts and feedback from you.
>
> Anyone have thoughts or feedback? :)
>
> -Chris
> _______________________________________________
> LLVM Developers mailing list
> [hidden email]         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev

_______________________________________________
LLVM Developers mailing list
[hidden email]         http://llvm.cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev

LangImpl3.diff (11K) Download Attachment
LangImpl4.diff (8K) Download Attachment
LangImpl5.diff (10K) Download Attachment
12