Top Banner
Bringing the power of Eclipse to Digital Hardware designers Hendrik Eeckhaut Mark Christiaens Lieven Lemiengre
20

EclipseCon Europe 2011

Dec 17, 2014

Download

Technology

Sigasi

 
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: EclipseCon Europe 2011

Bringing the power of Eclipse to Digital

Hardware designersHendrik EeckhautMark ChristiaensLieven Lemiengre

Page 2: EclipseCon Europe 2011

2

HELLOMY NAME IS

@heeckhau

Page 3: EclipseCon Europe 2011

3

Page 4: EclipseCon Europe 2011

Eclipse

4

• Navigation

• Autocomplete

• Real-time errors

• Quick-assist/fix

• Refactoring

Page 5: EclipseCon Europe 2011

5

Page 6: EclipseCon Europe 2011

hardware development toolkit

Bring power of Eclipse to Digital Hardware Designers

Page 7: EclipseCon Europe 2011

VHDL

• 20 year old language (based on Ada)

• all shortcomings of arcane languages• verbose

• irregular

• ...

7

Page 8: EclipseCon Europe 2011

Perfect fit for ?

• Xtext looks like perfect fit:• navigation

• type time syntax checking

• linting and quick-fixes

• formatting

• But: Powerful enough for VHDL?

8

Grammar

• navigation

• type time syntax checking

• linting and quick-fixes

• formatting

Page 9: EclipseCon Europe 2011

Demo

Page 10: EclipseCon Europe 2011

Xtext experience

10

Results

Effort

EMFAntlr

Guice

Xtext

Eclipse

Page 11: EclipseCon Europe 2011

• Grammar

• Scoping

• UI

• Autocomplete

• Formatting

• Testing

• Performance

Overview

Lessons learnt ?

11

• Grammar

• Scoping

• UI

• Autocomplete

• Formatting

• Testing

• Performance

Page 12: EclipseCon Europe 2011

• Grammar

• Scoping

• UI

• Autocomplete

• Formatting

• Testing

• Performance

Grammar

• Lexer: No problems(We had ANTLR grammar to start from)

• Parser: No semantic predicates

• Keep track of the number/size of objects that are created

12

Grammar

Page 13: EclipseCon Europe 2011

• Grammar

• Scoping

• UI

• Autocomplete

• Formatting

• Testing

• Performance

Scoping

• A lot harder than expected

• Difficult to debug (declarative approach, lazy evaluation)

13

Scoping

Page 14: EclipseCon Europe 2011

• Grammar

• Scoping

• UI

• Autocomplete

• Formatting

• Testing

• Performance

User Interface

• Works as expected : outline, preferences, templates, folding, (syntax and semantic) highlighting

• Xtext team keeps adding nice improvements

• Some scalability issues: Large files are problematic in UI (n2 problems)

14

UI

Page 15: EclipseCon Europe 2011

• Grammar

• Scoping

• UI

• Autocomplete

• Formatting

• Testing

• Performance

Autocomplete

• Autocomplete based on grammar/scope is not powerful enough• autocomplete is mostly triggered for

incomplete code (incorrect context)

• extended toolkit would be better

• Most VHDL autocompletes are manually designed

15

Autocomplete

Page 16: EclipseCon Europe 2011

• Grammar

• Scoping

• UI

• Autocomplete

• Formatting

• Testing

• Performance

Formatting

• Needs a lot of customization

• A lot cleaner to implement than what e.g. Emacs does

• Priority of rules not always clear

• Custom extension for vertical alignment

16

Formatting

Page 17: EclipseCon Europe 2011

• Grammar

• Scoping

• UI

• Autocomplete

• Formatting

• Testing

• Performance

Testing

• Xtext itself contains good starting points

• Dependency injection (Guice) makes it easy to test

17

Testing

Page 18: EclipseCon Europe 2011

• Grammar

• Scoping

• UI

• Autocomplete

• Formatting

• Testing

• Performance

Performance

18

• Xtext continuously improves

• Sigasi patches: Parallel loading, Model Caching

• Memory usage OKPerformance

Page 19: EclipseCon Europe 2011

Unresolved Xtext issues

• Type system

• Opening non-project files

• Preprocessing

19

?

Page 20: EclipseCon Europe 2011

Conclusions

• Xtext is really powerful technology

• Gives great architecture/structure

• Getting started is easy

• But... still a lot of work

• Devil is in the details

20