From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.5-pre1 (2020-06-20) on ip-172-31-74-118.ec2.internal X-Spam-Level: X-Spam-Status: No, score=-0.5 required=3.0 tests=BAYES_05,FREEMAIL_FROM autolearn=ham autolearn_force=no version=3.4.5-pre1 X-Received: by 2002:a37:4d8e:: with SMTP id a136mr1228397qkb.317.1609517895763; Fri, 01 Jan 2021 08:18:15 -0800 (PST) X-Received: by 2002:a25:5c1:: with SMTP id 184mr89205379ybf.173.1609517895596; Fri, 01 Jan 2021 08:18:15 -0800 (PST) Path: eternal-september.org!reader02.eternal-september.org!news.uzoreto.com!tr1.eu1.usenetexpress.com!feeder.usenetexpress.com!tr3.iad1.usenetexpress.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail Newsgroups: comp.lang.ada Date: Fri, 1 Jan 2021 08:18:15 -0800 (PST) Complaints-To: groups-abuse@google.com Injection-Info: google-groups.googlegroups.com; posting-host=2a02:1206:4564:fe50:6999:24e:f6c5:c83e; posting-account=gRqrnQkAAAAC_02ynnhqGk1VRQlve6ZG NNTP-Posting-Host: 2a02:1206:4564:fe50:6999:24e:f6c5:c83e User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <3645df90-9981-4e5b-8e3d-6a428c3dfb08n@googlegroups.com> Subject: Ann: HAC v.0.085 From: Gautier write-only address Injection-Date: Fri, 01 Jan 2021 16:18:15 +0000 Content-Type: text/plain; charset="UTF-8" Xref: reader02.eternal-september.org comp.lang.ada:61003 List-Id: HAC (HAC Ada Compiler) is a small, quick, open-source Ada compiler, covering a subset of the Ada language. HAC is itself fully programmed in Ada. Web site: http://hacadacompiler.sf.net/ Source repository #1: https://sf.net/p/hacadacompiler/code/HEAD/tree/ Source repository #2: https://github.com/zertovitch/hac * Improvements: HAC_Integer (internal name in HAC_Sys.Defs), i.e. HAC's Integer type, is now 64 bit. HAC_Float (i.e. `Real` in HAC programs) has now System.Max_Digits digits accuracy. Added range constraints, like: ` subtype Answer_Range is Character range 'a' .. 'z' `. Added membership test, like: ` x [not] in a .. b `. Several additions to HAC_Pack. Better I/O error handling. The whole system (Compiler and VM run-time) builds on both GNAT and ObjectAda64. * Fixes ([hand_washing] all bugs stem from SmallAda [/hand_washing]): Recursive calls to main procedure were mistaken as calls to "standard" procedures in HAC_Pack Block identification used main program's identifier instead of its nesting. EXIT statement on FOR loop implied stack corruption for several nested FOR loops. EXIT statements within IF statements didn't work properly. Priority levels in expressions were not conform to the Ada Reference Manual's. Most visible change: needless brackets can now be removed around logical expressions. * Test suite: added new 19 programs to the 12 existing tests. The 19 source files are named exm/aoc/2020/aoc_2020_*.adb, solutions to the Advent of Code 2020 puzzles. Enjoy!