Skip to content

Latest commit

 

History

History
343 lines (279 loc) · 22.3 KB

CHANGELOG.md

File metadata and controls

343 lines (279 loc) · 22.3 KB

Changelog

0.8.0 - 2024-12-31

Added

  • Parse multiple fields on same line #683
  • Add enum variants to enum data type #684
  • Enable restrict in string standard header #691
  • Add node example #694
  • Implement nullptr_t for C23 standard #696

Changed

  • Prepare to implement state checker #689
  • Make some improvements (typecheck, inferance, ...) #695

Fixed

  • Fix macro call with paren after #681
  • Allow initialization on cast expression #685
  • Allow array and function to cast data type #686
  • Disallow assignment to array data type #686
  • Fix visit of struct, union and typedef #692
  • Fix missing typedef data type resolution #693

Removed

  • Remove comment doc token after scan #682
  • Remove unused EOT contexts #688
  • Remove unused code in the parser #690

0.7.0 - 2024-11-21

Added

  • Scan GNU attribute #648
  • Add support to __restrict and __restrict__ extension #651
  • Add __extension__ keyword support #656
  • Write a preprocessor resolver #659
  • Parse custom expression of enum variant #661
  • Resolve indirect macro call #663
  • Add the ability to merge keyword #665
  • Parse bit field #667
  • Generate bit field #669
  • Add VecBit type #671
  • Add out.ci and out.lily to .gitignore #673
  • Validate non null expression #678

Changed

  • Improve scan of __attribute__((x)) #649
  • Move scan of multi keywords in the parser #652
  • Disable Clang and GCC features #658
  • Improve the resolution of custom value of enum variant #662
  • Stop to give storage class to enum declaration #668
  • Use fwrite instead of fprintf #672
  • Let the OS store stdio.h and stdlib.h #677

Fixed

  • Fix case with paren inside __attribute__ #650
  • Fix some issues with preprocessor #653
  • Fix bad parsing of dot and arrow access #654
  • Fix leak when macro param is passed to unused macro param #655
  • Fix infinite loop while parse post data type #657
  • Fix bug on direct declaration of struct/union in typedef declaration #660
  • Fix else if statement #664
  • Limit the resolution of left or right token of ## #666
  • Fix bad order of declaration generation #670
  • Fix few leaks during typechecking of path access #675
  • Fix write file regression #676

Removed

  • Remove benchmarks directory #674

0.6.0 - 2024-10-22

Added

  • Add C standard stdlib header #559
  • Add variadic parameter support to function #565
  • Add stdarg function builtins #567
  • Add __builtin_va_copy function builtin #568
  • Add C standard stdarg header #571
  • Add C standard stdio header #572
  • Add C standard stdbool header #573
  • Add ability to discard function call value #574
  • Add the ability to disable use of fork in the test library #581
  • Add -fsanitize=address to link options #582
  • Add new tests to Vec type #583
  • Add new tests to HashMap type #585
  • Add new tests to Str (char*) type #587
  • Add -f/--file option to CI CLI #588
  • Add scientific notation support to atof__* function #590
  • Add --standard/-s option to CI CLI #594
  • Add --include/-I option to CI CLI #596
  • Add --include0 option to CI CLI #599
  • Add some new tests to CI #604
  • Typecheck union data type #605
  • Add some new tests to CI [2] #609
  • Add C standard string header #610
  • Add C standard ctype header #611
  • Typecheck goto statement #618
  • Add some new tests to CI [3] #620
  • Add some new tests to CI [4] #622
  • Resolve array access in expression access (e.g. ->, .) #627
  • Implement all data type qualifiers #632
  • Add a check for data type qualifier #636
  • Add __gnuc_va_list support to stdarg.h #641
  • Add stdnoreturn header for C standard library #642
  • Scan ~ and ~= token #643
  • Add some checks to data type contexts #645

Changed

  • Allow void cast from all types #575
  • Allow to implicit cast from array to struct (vice versa) #576
  • Improve test library #580
  • Improve installation script #586
  • Update BUILD.md to add steps for FreeBSD #591
  • Use c2x instead of c23 as possible values for the standard option #595
  • Display expected value per option in the help #597
  • Update scripts/compare_ci.sh according the new CLI options #601
  • Make the warning preprocessor valid in all standards #603
  • Allow implicit cast from integer to float or vice versa #606
  • Make bool implicitly castable as an integer #607
  • Generate _Bool when standard is less than C23 #608
  • Allow to discard more expressions #612
  • Allow to pass c23 instead of c2x as value of standard option #617
  • Assume that a string literal is an array of char #619
  • Allow to use storage class inside function #621
  • Allow multiple expressions to for init clause #623
  • Update BUILD.md #624
  • Return 0 when a non-defined macro is encountered #625
  • Use bits/libc-header-start.h header in stdio.h #628
  • Update examples #629
  • Update documentations #630
  • Update README.md #631
  • Allow different syntaxes to data type qualifier #633
  • Define _Bool when using the C89 standard #640

Fixed

  • Fix bug in struct or union type name generation #561
  • Fix: Generate storage class for variable declaration #562
  • Fix: Stop to pre-calculate size or alignment of custom type #560
  • Fix a segfault when the config path could not be found #563
  • Fix: Check the number of macro parameters if there are none #564
  • Fix a segmentation fault when no expression was passed to the variable when checking the expression of the variable declaration #566
  • Fix leak when declaration is recursive (struct, ...) #569
  • Fix leak when the visit waiting list got collision #570
  • Fix condition of statement typecheck #577
  • Fix potential bug in for statement typecheck #578
  • Fix potential bug in for statement typecheck [2] #579
  • Fix some leaks during Lily compilation #584
  • Fix scripts/compare_ci.sh #589
  • Fix C suffixes integer #592
  • Fix build when LILY_BUILD_LLVM is on #593
  • Fix: Get absolute directory from include CLI option value #598
  • Fix parser never jump in else preprocessor #600
  • Fix lack of standardization of signed char keyword #602
  • Fix segfault during typecheck of for init clause #613
  • Fix bug in typecheck of function body item #614
  • Fix bug in generation of for init clause semicolon #615
  • Fix bad generation of post/pre dec/increment operator #616
  • Fix unary operator parsing #626
  • Fix unknown typedef while using stdio.h on Ubuntu #635
  • Fix a wrong order of generation of data type qualifiers #637
  • Fix extra space after data type generation #638
  • Fix some bugs in parsing of typedef declaration #639
  • Fix macro scan when encountering a comment line #644

0.5.0 - 2024-09-21

Added

  • Implement implicit casting #527
  • Finish to resolve unary expression #530
  • Add C standard stddef header #536
  • Add C standard stdint header #537
  • Typecheck params for generic function #539
  • Finish to visit generic function #541
  • Add the ability to call generic function #542
  • Add the ability to call struct or union in generic context #544
  • Add file system watcher #547
  • Typecheck dot and arrow access #548
  • Add the ability to call function as identifier #550
  • Add std_include setting to CI configuration #553
  • Add a script to auto-format files each time they are modified #555
  • Add object value/object schema structures #556

Changed

  • Improve inference of unary expression #526
  • Implement CLI for CI #529
  • Undef stdint macros #538
  • Infer string as a pointer #540

Fixed

  • Fix format__String function #528
  • Fix generic params #531
  • Fix leak in struct call typecheck #532
  • Fix struct call typecheck #533
  • Fix search in scope bug #534
  • Fix leak in parse function params #535
  • Fix bad generation of serialized name #543
  • Fix stack overflow while typechecking named struct #545
  • Fix bad typecheck diagnostic while using const data type #546
  • Fix few issues encountered on FreeBSD at compilation #549
  • Fix __FILE__ value #551
  • Fix __LINE__ value #552
  • Fix: Add missing data types to the parser of data type #554

0.4.0 - 2024-08-22

Added

  • Implement stringification #518
  • Add C standard assert header #520
  • Add C standard errno header #521
  • Parse data type contexts #522
  • Begin to implement typecheck #523

Fixed

  • Fix escape character generation #519

0.3.0 - 2024-07-21

Added

  • Implement __VA_ARGS__ #500
  • Resolve sizeof and alignof operator #504
  • Add a way to give different integer size to enum #505
  • Resolve size and alignment of builtin type #509
  • Implement attribute for function declaration #513

Fixed

  • Fix: Allow prototype duplications #503
  • Fix dependencies order generation #506
  • Fix space after brace of enum declaration #507
  • Fix potential bug in expression resolver #508
  • Fix array LLVM generation #510
  • Fix include path access #512
  • Fix wrapped macro call bug #514
  • Associate macro param with the right macro call ID #515

Changed

  • Stop to use _BitInt(x) Clang extension #511

0.2.0 - 2024-06-22

Added

  • Get builtin values according to the desired standard #483
  • Implement (scan) variadic param #482
  • Get compiler include dirs #486
  • Add __has_feature #487
  • Parse nullptr expression #488
  • Implement way to get standard types from builtin file (e.g. __SIZE_TYPE__) #489
  • Parse typeof #491
  • Add functions and types builtin #492
  • Generate function call builtin #498
  • Parse fixed array and function data type #499

Fixed

  • Fix parse unary #484
  • Fix bug in include system #493
  • Fix memory leak in resolve include preprocessor function #494
  • Fix bug in peek scanner function #495
  • Fix: Free duplicate macro #496
  • Fix memory leaks when resolving a ternary expression #497

Changed

  • Update until note message #485
  • Move the token standard check to the parser #490

0.1.0 - 2024-05-21

Added

  • Begin to implement CI #424
  • Implement anonymous struct/union #433
  • feat(cc/ci): Scan preprocessors #438
  • Resolve preprocessor #439
  • Scan & Resolve macro defined #440
  • Use HAS_REACH_END macro in Lily scanner #441
  • Scan integer and float suffixes #443
  • Add standard predefined macros #444
  • Parse array access #450
  • Parse list of variables #452
  • Parse typedef declaration #453
  • Manage recursive type #455
  • Parse array #462
  • Manage prototype rule #465
  • Add _XOPEN_SOURCE macro as builtin #468
  • Define standard macros #471
  • Build entity (library, binary, ...) #472
  • Add static storage class to all functions gen #475
  • Parse ternary expression #477
  • Implement ID merge #478

Fixed

  • Fix bug on expression with defined macro #442
  • Fix semicolon bug in the parser #446
  • Fix for statement init-clause #447
  • Fix bug on while statement parsing #448
  • Fix: The parser incorrectly parse the do..while statement. #449
  • Fix bug on parsing of enum and struct #451
  • Fix parsing of post expression #454
  • Fix bug on for loop parsing #459
  • Fix parsing on sizeof expression #460
  • Fix miss standarization of keyword #461
  • Fix bug on switch statement parsing #463
  • Fix bug in generation of builtin value #473
  • Fix leak during macro param injection #479

Changed

  • Change generic syntax #458
  • Update initialization rule #464
  • Turn token as node #469
  • Update include system #476

0.0.2 - 2023-09-22

Fixed

  • Fix infinite wait when running child packages #403

0.0.1 - 2023-09-21

Fixed

  • Fix linking errors on MacOS #401