From alhassy at gmail.com Tue Oct 2 15:15:56 2018 From: alhassy at gmail.com (Musa Al-hassy) Date: Tue, 2 Oct 2018 09:15:56 -0400 Subject: [Agda-dev] Agda Compiler Alterations Guide :: Notes Message-ID: Dear Agda Community, Does anyone have notes, or knows how to, or can provide a guide to making alterations to the Agda compiler. I would like to experiment with adding record declaration combinators. In general, I am trying to add some meta-programming features that would generate new declarations based on existing declarations, somewhat like Haskell's deriving (or deriving-via). To elaborate further on what I'm really trying to accomplish, consider: record SingleSortedAlgebra : Set? where field Carrier : Set _?_ : Carrier ? Carrier ? Carrier One of my aims is to introduce construct ?fields-of?: record SingleSortedAlgebraWithConstant : Set? where fields-of SingleSortedAlgebra renaming (_?_ to _?$?_) field ? : Carrier Which should have the same net result as: record SingleSortedAlgebraWithConstant : Set? where field Carrier : Set _?$?_ : Carrier ? Carrier ? Carrier ? : Carrier I have been unsuccessful in locating any documentation to help me achieve such changes to the Agda compiler. If you know of any, please send them my way. I have been trying to make super simple changes, like aliases for keywords, and have been unsuccessful for some time. In particular, to make an observable change I wanted the compiler to accept the keyword `mmodule` in place of the existing `module` keyword. I grep'd for "module" in the agda source, including in the alex and happy files, prepended the strings with an extra `m`, then re-compiled and re-built everything. The result was a broken agda sytem: A file containing only `mmodule silly1 where` could no longer type check with module name and file name errors; even though the file name was silly1.agda. My steps and code can be found at https://github.com/alhassy/agda My current aim is to provide renaming of record fields, that would provide an isomorphic record declaration but with some fields renamed, as a starting point. [I am well aware of Agda's renaming features when opening a module; this is different, as it is about generating new declarations]. Any advice would be appreciated --any existing notes would be immensely helpful! Best regards, Musa Al-hassy From nad at cse.gu.se Tue Oct 2 15:45:35 2018 From: nad at cse.gu.se (Nils Anders Danielsson) Date: Tue, 2 Oct 2018 15:45:35 +0200 Subject: [Agda-dev] Agda Compiler Alterations Guide :: Notes In-Reply-To: References: Message-ID: <87557f9d-06db-aa21-5c39-1dc0cd72216b@cse.gu.se> On 2018-10-02 15:15, Musa Al-hassy wrote: > In particular, to make an observable change I wanted the compiler > to accept the keyword `mmodule` in place of the existing `module` keyword. I don't think you need to modify the parser. However, it might make sense to modify Agda.Syntax.Concrete.Pretty. > My steps and code can be found at https://github.com/alhassy/agda Agda complains because you did not replace module with mmodule in Agda.Primitive (see src/data/lib/prim/Agda/Primitive.agda). This module is loaded automatically by Agda. -- /NAD From alhassy at gmail.com Tue Oct 2 18:14:59 2018 From: alhassy at gmail.com (Musa Al-hassy) Date: Tue, 2 Oct 2018 12:14:59 -0400 Subject: [Agda-dev] Agda Compiler Alterations Guide :: Notes In-Reply-To: References: Message-ID: Going to the language's Implementors meeting --on a whole other continent-- seems rather unreasonable to obtain minimal direction on altering the compiler. I want to work on the compiler, but I don't have superfluous funds. Once again, I appeal to the community: Surely someone has jotted down some messy notes on how to make alterations; anything helps, such as how the system is interconnected or where a reasonable place to begin and work from! Honestly, anything helps! This is an opportunity to get some manual made for others to contribute. People have things on the Agda ``wish list'', and people like me might realise them if guiding manuals were in-place. On Tue, Oct 2, 2018 at 10:19 AM Andreas Abel wrote: > > > Does anyone have notes, or knows how to, or can provide a guide > > to making alterations to the Agda compiler. > > Well, we know how to, but have not anything written down. The Agda > meeting is a place for getting insider information. > > http://wiki.portal.chalmers.se/agda/pmwiki.php?n=Main.AIMXXVIII > > > My steps and code can be found at https://github.com/alhassy/agda > > I commented here: > https://github.com/alhassy/agda/commit/6043e77e4a72518711f5f808fb4eb593cbf0bb7c#commitcomment-30735013 > > On 02/10/18 15:15, Musa Al-hassy wrote: > > Dear Agda Community, > > > > Does anyone have notes, or knows how to, or can provide a guide > > to making alterations to the Agda compiler. > > > > I would like to experiment with adding record declaration combinators. > > In general, I am trying to add some meta-programming features that > > would generate new declarations based on existing declarations, > > somewhat like Haskell's deriving (or deriving-via). > > > > To elaborate further on what I'm really trying to accomplish, consider: > > > > record SingleSortedAlgebra : Set? where > > field > > Carrier : Set > > _?_ : Carrier ? Carrier ? Carrier > > > > One of my aims is to introduce construct ?fields-of?: > > > > record SingleSortedAlgebraWithConstant : Set? where > > fields-of SingleSortedAlgebra renaming (_?_ to _?$?_) > > field > > ? : Carrier > > > > Which should have the same net result as: > > > > record SingleSortedAlgebraWithConstant : Set? where > > field > > Carrier : Set > > _?$?_ : Carrier ? Carrier ? Carrier > > ? : Carrier > > > > I have been unsuccessful in locating any documentation to help me achieve > > such changes to the Agda compiler. If you know of any, please send them my way. > > > > I have been trying to make super simple changes, like aliases for keywords, > > and have been unsuccessful for some time. > > In particular, to make an observable change I wanted the compiler > > to accept the keyword `mmodule` in place of the existing `module` keyword. > > I grep'd for "module" in the agda source, including in the alex and happy files, > > prepended the strings with an extra `m`, then re-compiled and re-built > > everything. > > The result was a broken agda sytem: A file containing only `mmodule > > silly1 where` > > could no longer type check with module name and file name errors; even though > > the file name was silly1.agda. > > > > My steps and code can be found at https://github.com/alhassy/agda > > > > My current aim is to provide renaming of record fields, that would provide > > an isomorphic record declaration but with some fields renamed, as a starting > > point. [I am well aware of Agda's renaming features when opening a module; > > this is different, as it is about generating new declarations]. > > > > Any advice would be appreciated --any existing notes would be immensely helpful! > > > > Best regards, > > > > Musa Al-hassy > > _______________________________________________ > > Agda-dev mailing list > > Agda-dev at lists.chalmers.se > > https://lists.chalmers.se/mailman/listinfo/agda-dev > > > > -- > Andreas Abel <>< Du bist der geliebte Mensch. > > Department of Computer Science and Engineering > Chalmers and Gothenburg University, Sweden > > andreas.abel at gu.se > http://www.cse.chalmers.se/~abela/ From guillaume.brunerie at gmail.com Tue Oct 2 20:30:04 2018 From: guillaume.brunerie at gmail.com (Guillaume Brunerie) Date: Tue, 2 Oct 2018 20:30:04 +0200 Subject: [Agda-dev] Agda Compiler Alterations Guide :: Notes In-Reply-To: References: Message-ID: One suggestion would be that you browse the commit history on github, look at the commits that are touching the same parts of Agda that you're interested in, and try to understand the changes made by the author of the commit. You will most likely learn a lot in this way. Den tis 2 okt. 2018 18:15Musa Al-hassy skrev: > Going to the language's Implementors meeting --on a whole other > continent-- seems rather unreasonable to obtain > minimal direction on altering the compiler. I want to work on the > compiler, but I don't have superfluous funds. > > Once again, I appeal to the community: Surely someone has jotted down some > messy > notes on how to make alterations; anything helps, such as how the > system is interconnected > or where a reasonable place to begin and work from! > > Honestly, anything helps! > > This is an opportunity to get some manual made for others to contribute. > People have things on the Agda ``wish list'', and people like me might > realise > them if guiding manuals were in-place. > > On Tue, Oct 2, 2018 at 10:19 AM Andreas Abel wrote: > > > > > Does anyone have notes, or knows how to, or can provide a guide > > > to making alterations to the Agda compiler. > > > > Well, we know how to, but have not anything written down. The Agda > > meeting is a place for getting insider information. > > > > http://wiki.portal.chalmers.se/agda/pmwiki.php?n=Main.AIMXXVIII > > > > > My steps and code can be found at https://github.com/alhassy/agda > > > > I commented here: > > > https://github.com/alhassy/agda/commit/6043e77e4a72518711f5f808fb4eb593cbf0bb7c#commitcomment-30735013 > > > > On 02/10/18 15:15, Musa Al-hassy wrote: > > > Dear Agda Community, > > > > > > Does anyone have notes, or knows how to, or can provide a guide > > > to making alterations to the Agda compiler. > > > > > > I would like to experiment with adding record declaration combinators. > > > In general, I am trying to add some meta-programming features that > > > would generate new declarations based on existing declarations, > > > somewhat like Haskell's deriving (or deriving-via). > > > > > > To elaborate further on what I'm really trying to accomplish, consider: > > > > > > record SingleSortedAlgebra : Set? where > > > field > > > Carrier : Set > > > _?_ : Carrier ? Carrier ? Carrier > > > > > > One of my aims is to introduce construct ?fields-of?: > > > > > > record SingleSortedAlgebraWithConstant : Set? where > > > fields-of SingleSortedAlgebra renaming (_?_ to _?$?_) > > > field > > > ? : Carrier > > > > > > Which should have the same net result as: > > > > > > record SingleSortedAlgebraWithConstant : Set? where > > > field > > > Carrier : Set > > > _?$?_ : Carrier ? Carrier ? Carrier > > > ? : Carrier > > > > > > I have been unsuccessful in locating any documentation to help me > achieve > > > such changes to the Agda compiler. If you know of any, please send > them my way. > > > > > > I have been trying to make super simple changes, like aliases for > keywords, > > > and have been unsuccessful for some time. > > > In particular, to make an observable change I wanted the compiler > > > to accept the keyword `mmodule` in place of the existing `module` > keyword. > > > I grep'd for "module" in the agda source, including in the alex and > happy files, > > > prepended the strings with an extra `m`, then re-compiled and re-built > > > everything. > > > The result was a broken agda sytem: A file containing only `mmodule > > > silly1 where` > > > could no longer type check with module name and file name errors; even > though > > > the file name was silly1.agda. > > > > > > My steps and code can be found at https://github.com/alhassy/agda > > > > > > My current aim is to provide renaming of record fields, that would > provide > > > an isomorphic record declaration but with some fields renamed, as a > starting > > > point. [I am well aware of Agda's renaming features when opening a > module; > > > this is different, as it is about generating new declarations]. > > > > > > Any advice would be appreciated --any existing notes would be > immensely helpful! > > > > > > Best regards, > > > > > > Musa Al-hassy > > > _______________________________________________ > > > Agda-dev mailing list > > > Agda-dev at lists.chalmers.se > > > https://lists.chalmers.se/mailman/listinfo/agda-dev > > > > > > > -- > > Andreas Abel <>< Du bist der geliebte Mensch. > > > > Department of Computer Science and Engineering > > Chalmers and Gothenburg University, Sweden > > > > andreas.abel at gu.se > > http://www.cse.chalmers.se/~abela/ > _______________________________________________ > Agda-dev mailing list > Agda-dev at lists.chalmers.se > https://lists.chalmers.se/mailman/listinfo/agda-dev > -------------- next part -------------- An HTML attachment was scrubbed... URL: From abela at chalmers.se Wed Oct 3 09:41:15 2018 From: abela at chalmers.se (Andreas Abel) Date: Wed, 3 Oct 2018 09:41:15 +0200 Subject: [Agda-dev] Agda Compiler Alterations Guide :: Notes In-Reply-To: References: Message-ID: <79b91ee7-648c-69e9-d561-5f5de934468e@chalmers.se> I did small tutorials how to fix a bug in Agda on the Agda meetings, here are some brief notes: http://wiki.portal.chalmers.se/agda/pmwiki.php?n=DevelopersManual.BugFixing This includes at least a rought picture over the main pipeline (from Parsing to Compilation) in Agda. Otherwise, some developer's notes are in https://github.com/agda/agda/blob/master/HACKING On 02/10/18 20:30, Guillaume Brunerie wrote: > One suggestion would be that you browse the commit history on github, > look at the commits that are touching the same parts of Agda that you're > interested in, and try to understand the changes made by the author of > the commit. > You will most likely learn a lot in this way. > > Den tis 2 okt. 2018 18:15Musa Al-hassy > skrev: > > Going to the language's Implementors meeting --on a whole other > continent-- seems rather unreasonable to obtain > minimal direction on altering the compiler. I want to work on the > compiler, but I don't have superfluous funds. > > Once again, I appeal to the community: Surely someone has jotted > down some messy > notes on how to make alterations; anything helps, such as how the > system is interconnected > or where a reasonable place to begin and work from! > > Honestly, anything helps! > > This is an opportunity to get some manual made for others to contribute. > People have things on the Agda ``wish list'', and people like me > might realise > them if guiding manuals were in-place. > > On Tue, Oct 2, 2018 at 10:19 AM Andreas Abel > wrote: > > > >? > Does anyone have notes, or knows how to, or can provide a guide > >? > to making alterations to the Agda compiler. > > > > Well, we know how to, but have not anything written down.? The Agda > > meeting is a place for getting insider information. > > > > http://wiki.portal.chalmers.se/agda/pmwiki.php?n=Main.AIMXXVIII > > > >? > My steps and code can be found at https://github.com/alhassy/agda > > > > I commented here: > > > https://github.com/alhassy/agda/commit/6043e77e4a72518711f5f808fb4eb593cbf0bb7c#commitcomment-30735013 > > > > On 02/10/18 15:15, Musa Al-hassy wrote: > > > Dear Agda Community, > > > > > > Does anyone have notes, or knows how to, or can provide a guide > > > to making alterations to the Agda compiler. > > > > > > I would like to experiment with adding record declaration > combinators. > > > In general, I am trying to add some meta-programming features that > > > would generate new declarations based on existing declarations, > > > somewhat like Haskell's deriving (or deriving-via). > > > > > > To elaborate further on what I'm really trying to accomplish, > consider: > > > > > >? ? ?record SingleSortedAlgebra : Set? where > > >? ? ? ?field > > >? ? ? ? Carrier : Set > > >? ? ? ? _?_ : Carrier ? Carrier ? Carrier > > > > > > One of my aims is to introduce construct ?fields-of?: > > > > > >? ? ?record SingleSortedAlgebraWithConstant : Set? where > > >? ? ? ?fields-of SingleSortedAlgebra renaming (_?_ to _?$?_) > > >? ? ? ?field > > >? ? ? ? ?? : Carrier > > > > > > Which should have the same net result as: > > > > > >? ? ?record SingleSortedAlgebraWithConstant : Set? where > > >? ? ? ?field > > >? ? ? ? Carrier : Set > > >? ? ? ? _?$?_ : Carrier ? Carrier ? Carrier > > >? ? ? ?? : Carrier > > > > > > I have been unsuccessful in locating any documentation to help > me achieve > > > such changes to the Agda compiler. If you know of any, please > send them my way. > > > > > > I have been trying to make super simple changes, like aliases > for keywords, > > > and have been unsuccessful for some time. > > > In particular, to make an observable change I wanted the compiler > > > to accept the keyword `mmodule` in place of the existing > `module` keyword. > > > I grep'd for "module" in the agda source, including in the alex > and happy files, > > > prepended the strings with an extra `m`, then re-compiled and > re-built > > > everything. > > > The result was a broken agda sytem: A file containing only `mmodule > > > silly1 where` > > > could no longer type check with module name and file name > errors; even though > > > the file name was silly1.agda. > > > > > > My steps and code can be found at https://github.com/alhassy/agda > > > > > > My current aim is to provide renaming of record fields, that > would provide > > > an isomorphic record declaration but with some fields renamed, > as a starting > > > point. [I am well aware of Agda's renaming features when > opening a module; > > > this is different, as it is about generating new declarations]. > > > > > > Any advice would be appreciated --any existing notes would be > immensely helpful! > > > > > > Best regards, > > > > > > Musa Al-hassy > > > _______________________________________________ > > > Agda-dev mailing list > > > Agda-dev at lists.chalmers.se > > > https://lists.chalmers.se/mailman/listinfo/agda-dev > > > > > > > -- > > Andreas Abel? <> > > > Department of Computer Science and Engineering > > Chalmers and Gothenburg University, Sweden > > > > andreas.abel at gu.se > > http://www.cse.chalmers.se/~abela/ > > _______________________________________________ > Agda-dev mailing list > Agda-dev at lists.chalmers.se > https://lists.chalmers.se/mailman/listinfo/agda-dev > > > > _______________________________________________ > Agda-dev mailing list > Agda-dev at lists.chalmers.se > https://lists.chalmers.se/mailman/listinfo/agda-dev > -- Andreas Abel <>< Du bist der geliebte Mensch. Department of Computer Science and Engineering Chalmers and Gothenburg University, Sweden andreas.abel at gu.se http://www.cse.chalmers.se/~abela/ From Jesper at sikanda.be Sat Oct 13 14:38:34 2018 From: Jesper at sikanda.be (Jesper Cockx) Date: Sat, 13 Oct 2018 14:38:34 +0200 Subject: [Agda-dev] Fwd: Calling all type system implementors In-Reply-To: References: Message-ID: Hi Agda developers, Richard Eisenberg recently started a new mailing list aimed at implementers of (dependent) type systems (see below). I think it is a great idea to collaborate more between different languages, so please consider joining the list! -- Jesper ---------- Forwarded message --------- From: Richard Eisenberg Date: Fri, Oct 12, 2018 at 5:21 AM Subject: Calling all type system implementors To: Richard Eisenberg Hi colleagues, Recently back from ICFP, I want the collaboration and sharing of knowledge to continue. Whenever I'm in the presence of others working on similar problems to the ones I face in GHC, I'm inspired by the work you do and enjoy finding the ways in which the problems we have are similar. So, I decided to set up a mailing list where we can share knowledge, ask questions of each other, and collaborate in general. My goal here is to bring together the type system grease monkeys of the world: we who both design these complex systems and implement them. I'm hoping that the list will contain discussions of, say, implementation tricks in higher-order unification, or thoughts about kind inference of datatype declarations parameterized by telescopes with internal dependency, or even syntactic choices around irrelevant function arguments. We are an odd, select bunch who share our passion for these fun problems, and we have much to learn from each other. This email is going out to members of the communities from the following languages: GHC, Ocaml, Idris, Agda, Coq, Scala, and Rust. I know GHC fairly well, but not so much the others. Please forward to the individuals in your communities who know the most about your respective type systems and their implementations -- in some cases, I got your names solely by scrolling through recent commit histories. Also, please feel free to forward to other language communities. I'm not trying to exclude anyone! If you're interested in joining the list, you may do so here: https://lists.cs.brynmawr.edu/listinfo/type-sys-impl Thanks! Richard -=-=-=-=-=-=-=-=-=-=- Richard A. Eisenberg, PhD Asst. Prof. of Computer Science Bryn Mawr College Bryn Mawr, PA, USA cs.brynmawr.edu/~rae -------------- next part -------------- An HTML attachment was scrubbed... URL: From asr at eafit.edu.co Tue Oct 30 00:17:55 2018 From: asr at eafit.edu.co (Andres Sicard Ramirez) Date: Mon, 29 Oct 2018 23:17:55 +0000 Subject: [Agda-dev] [ANNOUNCE] Agda 2.5.4.2 Message-ID: Dear all, The Agda Team is very pleased to announce the release of Agda 2.5.4.2. In this bug-fix release, we fixed a regression in Agda 2.5.4 related to slow type-checking with unsolved instance constraint (this fix wasn't included in the CHANGELOG by mistake, so see https://github.com/agda/agda/issues/3177 ) and we fixed a regression in Agda 2.5.4.1 related to the installation with some old versions of `cabal-install`. See the details and other changes in https://hackage.haskell.org/package/Agda-2.5.4.2/changelog GHC supported versions =============== Agda 2.5.4.2 has been tested with GHC 7.10.3, 8.0.2, 8.2.2 and 8.4.4. Note that GHC 8.4.* requires cabal-install ? 2.2.0.0. Installation ======= cabal update && cabal install Agda Standard library ========== The standard library 0.17 is compatible with Agda 2.5.4.2. Enjoy Agda 2.5.4.2. -- Andr?s on behalf of the Agda Team