GithubHelp home page GithubHelp logo

monostable / haskell-kicad-data Goto Github PK

View Code? Open in Web Editor NEW
9.0 5.0 1.0 194 KB

Parse and write KiCad data in Haskell.

License: MIT License

Haskell 96.92% Shell 2.24% Python 0.84%
kicad haskell parse kicad-footprints

haskell-kicad-data's People

Contributors

kasbah avatar ppelleti avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Forkers

ppelleti

haskell-kicad-data's Issues

Simplify and improve the s-expression parser

S-expressions should be super simple to parse, they are a representation of the parse tree!

  1. Do we really need to be aware of keywords in the s-expression parser?
  2. It should output line number and character number along with the parse output so that we can report these if they can not be interpreted later

Is there a significant difference between pretty-compact and pretty?

Just wondering if pretty-compact produces noticeably better output than pretty, in the context of kicad-data? If the difference isn't that big, I wonder if it might be preferable to switch to pretty instead, because:

  • pretty is more widely used
  • pretty has a more liberal license

Neither of these is a big issue for me, but they both seem like small arguments in favor of pretty.

tests fail with GHC 7.8.3 and pass with GHC 8.0.2

When using GHC 7.8.3, I get:

(used seed 4269272319002797922)

         Properties  Total      
 Passed  4           4          
 Failed  2           2          
 Total   6           6          
Test suite kicad-data-quickcheck: FAIL
Test suite logged to: dist/test/kicad-data-0.4.0-kicad-data-quickcheck.log
0 of 1 test suites (0 of 1 test cases) passed.

kicad-data-0.4.0-kicad-data-quickcheck.log.zip

When using GHC 8.0.2, I get:

Expr:
  parse all keywords: [OK, passed 100 tests]
PcbnewExpr:
  parse fp_line correctly: [OK, passed 100 tests]
  parse fp_arc correctly: [OK, passed 100 tests]
  parse fp_poly correctly: [OK, passed 100 tests]
  parse and write any PcbnewExpr: [OK, passed 100 tests]
  parse and pretty any PcbnewExpr: [OK, passed 100 tests]

         Properties  Total      
 Passed  6           6          
 Failed  0           0          
 Total   6           6          

I suspect it isn't actually the difference in compiler version that makes the difference, but rather some difference in the versions of dependencies used.

With GHC 7.8.3, my dependencies are as follows:

array == 0.5.0.0
base == 4.7.0.1
bytestring == 0.10.4.0
containers == 0.5.5.1
deepseq == 1.3.0.2
ghc-prim == 0.3.1.0
ieee754 == 0.7.9
integer-gmp == 0.5.1.0
lens-family == 1.1.0
lens-family-core == 1.1.0
mtl == 2.1.3.1
parsec == 3.1.11
parsec-numbers == 0.1.0
pretty-compact == 1.0
rts == 1.0
text == 1.1.0.0
transformers == 0.3.0.0

With GHC 8.0.2, my dependencies are:

array == 0.5.1.1
base == 4.9.1.0
binary == 0.8.3.0
bytestring == 0.10.8.1
containers == 0.5.7.1
deepseq == 1.4.2.0
ghc-prim == 0.5.0.0
ieee754 == 0.8.0
integer-gmp == 1.0.0.1
lens-family == 1.2.1
lens-family-core == 1.2.1
mtl == 2.2.1
parsec == 3.1.11
parsec-numbers == 0.1.0
pretty-compact == 1.0
rts == 1.0
text == 1.2.2.1
transformers == 0.5.2.0

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.