elixir115-doc-1.15.7-150300.7.5.1<>,Q4ffup9|H]YXHKѕv W/7_֓X q<ܥB-]Np'_wF .RM~f¼AG@p6@` &Ѵb;\8 ˄v<#G;w7ƃ?ʵFі!g3"?؝0u2V'I|kv+zlޢ['XeFc>Oi'J(9#͜|.^u˖uT>>9`?9Pd $ =dhtx        w2XTp<@K(L8T;9@;:;FCGXHTIPXY\0],^&b)*c)d*We*\f*_l*au*tv1pz8999 9LCelixir115-doc1.15.7150300.7.5.1Documentation for elixirDocumentation for the Elixir language.ffuh04-ch1d~vSUSE Linux Enterprise 15SUSE LLC Apache-2.0https://www.suse.com/Documentation/Otherhttp://elixir-lang.orglinuxnoarchcp8YOzu?t?9:< Z\Z`;:OTKxMM(HI<t7YSDc!ALR,`MSUFOaux>7{LSP7QZISbTkی~SeGPDPV0h_Q |GIwM/zkSqSP@>a y>@  RRD\Aaamm{kIW+FIQP 7{C[SFN/UlXPrZ9NhhtjZSzOzu?t?9:< Z\Z`;:OTKxMM(HI<t bVCLnM, PO^UˏczyB>jesv\U^w!HOzu?t?9:< Z\Z`;:OTKxMM(HI<tB/WQ~k%b%1|gOzu?t?9:< Z\Z`;:OTKxMM(HI<tSD&Ozu?t?9:< Z\Z`;:OTKxMM(HI<tVPaik2yRH/'Q)~9_H*$kAT,L(AfC~5W(hAIDDDP=.vSZOzu?t?9:< Z\Z`;:OTKxMM(HI<tֽnS'AA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤e*kffte*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*kffte*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*kffte*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*kffte*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*kffte*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*kffte*ke*ke*ke*ke*ke*ke*kffte*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*kffte*ke*ke*ke*ke*ke*kffte*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*kffte*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*kffte*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*ke*kffue*kld5234708d677dfe48862eec3f5a09f6b388a0a409f22e202c83d51fce5bdd04a920028bb3dd29f7b7d3d719522a196dc11b33742b0e8d140000a8bd4d5d013f5e82eb345b8c85f0aa0b86322fc8c4b4b7df3d588a6d880971d8c5f4f19dd7aff1ed8d889504d7f03f8d523224af72b5ce565675aadbfdddbebac0c070b1bc5373077aa052029d90229a902e585b691a5501017a73d0ab6e8d525835d0be72b4e7275af1183b84b5261869445e0e2989d3a7f033dacabf6fadac914c981f43f9a02eb7bf68d70b7d466426a6ef765a0e0f5ae4b5fe0d112d0eecb0a978000098decdc5e7cf4cecb68f41bc89909dc5969292f9b713997780b0e21cdecb7d87440ca1cefc5aeccb5ee85a5f4d5f3829e853a5c3adbca7f9781f283ae5e0be8e1aa5f5730c1e969bf6fce25221530c67478d2a1c90f5ac674eb46e580b0b84a00d64f9f98d74dc5dea24db279aedd49367424c72cba9fb67341cbef8bcd2f0ad0023fe64dd69ec8f256126a6a6810071bd01a655f68855ea05a9a110b664140e3baf8986368fffea126b2164f59a9624940b0553142964a5a3c888304906c387cfb7c83e42528e43d0db3155aaaaf18359b92af14b7c6a1e6b8582fbd39e3f0d97823c5437a2a46fcf8ea988b714d639c33d1a0a9a3a96e41e9d7e43defbdad318d6c631dfd6d6dbf5fb1c8d04813f674d91fd4fd0cc62eefdbb6d782b27aebbb9b115f6a626ca115d4ad5581b59275327e0e860b30330a52b0f785561332dd2429918b7dc3e2e2d015c16ce08b57bcb64d2253bafc1707658f361e72865498e537c447dd7677b419db7b21dbdfc6277c7816a913ffda76fd2e52702df538de0e49c9455def209bbd015200db4ecf838ee149944d0e229b519b8e237738946c87241c2fc265baaeba4f3f5b8c7285b93343aead25590f08be73d3056718b376c5d74ef7cd3d4ed7de91e7eb3c05a31c6fa1da0b08d07cbfab8ae108c34d5e39cdb967bffaaf10e49f8271dbb7d24e645cf1d5d529bbae7a4f5353d3e10b79c35e9e99321551755755b9312c2026e4603deadf65b6b51b5c746b6a5b54576390fa0b2ee4036ca931229163064ddbadf9bc69def8ff3f7d0dc59f232da15b1fea41f9a0f82af31361036546f007e81fa9a0fad8370a38f78e7aca7d8d8d986995160b75ca7c01eaa8136d970bde6ea6ae0896d2fe30febf82e7679257df6e1f8a7496c8356c413b566272ba50c98d4ce0546e1fce6177ceb6cf8c2a7efe0a65e085a174df84ee4b94b76e5041b266f2d5629b369b9b4f5b3b621d1e6eb99d5df2ae5d659e921dce3bac30bede283db80f037308ebb46b011542555d79adf2da13fb2d46bd5c3df10118b959bbb8bca4b2a868f55a67e30899a6574b3ca3ce418e99cff0d5613574438bf84b06b6d0d662584a6b5218e6778e800c9fe78312fb72b9f7db9c9686829a1d46670a7a93a2d724322a309c28215f842b6bb181dd286a0ac47eb1de7771d681be3839768b77a8bf580d95b8fff58bf4a62f32ca2ce6055ba7b1164516f5b7e0556afe36a4708715f5fb19445b297fe10c36dd0e362e4441c04bbf34451bb2ed215ffa10be1fd03190d4dcbf07a906f6ac1b1c9e42c2f935681e43eea2a3c8fb69bd893e0fb1b758f38a2394ad13ebc09e2741cfa7e35584a9b2d00d97ead8f912753ab9f2181c973c65a63bb2af7d0a6e674552fcdd2a2000ff8f7a333f06eeb87bf8de30ce008f6500d3039b5e4bf78ace6e12af711c0c9db4d1cdad60fbecc964e485829d748e6d90c19fb31806685dc7b0cb7d0aeffebf7c3a2067ebf551f6c708d445c61a74ed430ee673f255e6e6df91f020a0cc7205d21ee9016e2d5415a02e326dc9f015a17b3eb5512bb250ecb79a1d885cd690713b1d8664f975a826c79eb721e0ff683ca5ea74a88a5b3a5b0a0739f14b7014392c877fa2b38149e63c0ba45a7c84fe3ad4920325a774b040f10e169f2e93431141e5db28b0d9c109bdb1e78cf9158133252c0edcd880155eea5f8ec6a529b067e87a19aae1a92bf761a2fc00dc2f963db30116c766d2f2bc097856332414dbf6bb3a5ec292171d6929316ce213a8feeb11110e6153c5477d5d668e9d4ed45e2a191ce74100b440e09fcba43e690c79e4c8d5d65cd86ae97309c36b218649a0f119205c21e3230f589b2b81ab1b9a93b0ba7c7e3fdb68b0cb02d71c9bac96d1b97cde8a6f1c3ab53c077ec832fed0398893361a355a6edfec38c6f237063b4f67f47198c7d7cfa5bf4fe8546654e46859db7771d73364391ee7b90d8e0aba08cda31ab3ffbdce95146d01709d1d3a1cfee4fb0a6b7da40ab15619bb78119764e5df9b679da1c728fa1b49d5633584eec01b82ce22b6e469d6cd7f31904032846222970c3d2d707694e1a1fdd88eadaa9f0571995b2ba8a5de52ae7c57e87930d16c13f79a88f0d75a6dc92d74df39ddcb50c41d863a2410847f27e00c806a0c69339e69fea6423c6a861ded2bfe3041201d7a0d78cf53f5b963729e06dc6e5543324429c5270cd3bddca9abc74f87e6d961033b69e5cfaae9dc4699ce6574e4eafb5ece0d6d72e29118843a494adde7fdb1106868db80c78d51ba307988d438f830a39804a9a6c50a77589a2384a30a264b5e07bdad680c62652afd01e9e1e5fcb5d27969657f4241e5fc45699bbfdc37da12941f62ccddb7d8eeade1fbb826672f4f41361e210e789ee018bf7c4209ebd851056f085b35d8582e2bb03d2014038553569f70e3bce8a86fd7c2a29c6cc7c2183335d5d453e260ecfbff8e4b208812fe55eca83d2881120687aa6f11e35c26c2a27f91b4efb362aa996bd5a62a0127560d2399d75596fed718d4e80ec2aa70b31c068f9686cac9851540f1e78425a4368f1081f3c4b138897f71f06568dac851fc0820aac98bff5ff05e838fce5c81b3550dc94a630af888c778e7049c962ae6e8eebcae06f28f9f5648152b22a969403c8c549b5babdfcb3c749b8e339a909a2ba99dfc2060e25b7f236965313f7cdf961c030441db484a72fc89b3346fcb36e750b76b33f5fcf39fdc04f2ac433757aeb76956c6af7eb63087fed405a3288c1e262ebe4ae0a9d53c2b0d5b3372f4f8ca18097de4c5a42cb77499676334e3e76e1673973ee95f55198c3994bf6b626cc91a6cd2b0f780438bf3d957777d2e19635da553009fb869c5851ca14c56c47377c334ee5eca64c6b1491cdd65626385ce361ea4bd6add754b5ed7100ffd0004330964613aaa4d2533e69010dd2de0dcb21f12762dbde3163c4e79c46bd82f55dfcb3fb2730b5f1af2c761b84859e793d83281d23cd628c1c3c1dbdb2873d260ee6be09101dcf20e39634fd80f912e8976bba924185a4999ca71075de239cf0e0b02088acb2639a159b068a6a3873cbb36ab8101722d0a6542c7250841bfbcb00023e051f527f174b6f8b2cc7db2f78cb09674da8e9a8abdab8a4340028b140dda4bae4f9ab0aa58207433c9a708c1635fd9e0f99825578a7302305f50a7baa56847d607597ff28198a3c100fb8c67c386a2970250ddaeaf13dc4a88dcfbd9f2f2bb8560bab650be594fdf98ad02aa3dd2a66e002413d988f1c5a783822fda18b6e2ac963cfaff3c422ebec84b974998b3b09f2d3419635c6af86a5508d84d6453d6e0d493e35eb55031179a37c303311d5bf6aab677f66fc69cddda021d63e0dcc0ef17fd951bf66276fd3d166449e368b3164ea4e458d7d6b8e763c11fabecc9e5b625d814989e7e5981c7fb6733ec8c3db28efee91f9cd1fe8efddf7a323a51c142464238c363af3f3d116f5d26af94e79233ffede7d7134036685d4797fc1aeb4bdc9ed77862f0ed16660260802c9a703926b6e27af6d22232af760c32c97765fd28705c8515f47e1211b2313384d0901529116d8ac14ae70d879e3a348610d27f34ef931b2ba08e048ce53c74eb6ed4853ab1af1c91ad71724398367b7e6882234af64b413fb39ae7aa43dd1a38f4969d0b97544eae9ed22f731a1a3ef43f4f5d32d469a9bc290371c66942f2b88f2faab241b7b8a984f6b9b116c6ebd1f392e56b230a1078e279b980bc1f4c78c11437ae216278d69dc1abe6b8a52cc0c5db3a2463b58136717ce85302def8103afc1e9148960e3c3f9cd941b30478f5c20bceae60b0a10da2fd2fd0fda26e7f932b66e09e8b9c2ab6e68a8b9f462d04b6a3240bd0f149e24371606d61e441112ab13f23581040498ab60b71ee25ffc63cf0028376b98bcd889590ca4eddc8c7b234d83123867dcf7729df86a45b43da8a38221dc6ae447d927ed5710ca91b7acea7fc5d031328e5c5d4edb640071edea435c1d2b80ec0859cb2334e402b74814f6d3b1a4fef69cb4a4330f6faa437efd56d3e437e60810a7fda9ed6fc23243d0ccb673a1e0cd2e6c3368397f3c27a7899a6a1c9e3355479f24bbf64637795158e2d3ff69a0d41c176b155861e9ca6bcf54b77580ee89e3d9492a5d182fe06d21275d722452d7166c8b7a4905a2e33c362e06cb53cd23d83caeb4e4d0fab16989ad812cb0fda24b8749f0faee4f402f462b62b0fe78edcbf53d7b95986e31c8a64aeaaabeb0415577fa9a296eca5e0b79e4c0ebd7ff04ab4cd1b4c6f390332881123e7fce3a4886ad1bc54b19df6dfe5ce3bfb4053452408b525bc246025ad8b40f72ce56acd48e1f11adee6be25178bac9afe94cd5f4551e4b41a1799923a17a6cfc6667db23c544794d22a757da765a579a3bec81d55ae8fc57ec0707a8e8c1e65f1c0e45f1b5078ab933ecdc8131b160efd9005c8b3ec61eac5fde7ad376f4302754b676b5481005d51b44bcc7bea62f0d0a4b99360879bcae37919bfee72979a0a7397a42abcf1da6cda0c687a725560a5674a8d5a2ab80f5b6eeec9617104e7241dae22a1644e9eff208890686bc07d8ab19ebe9efae88b791a0adc2a157a609a7eb666a7fbed08f8bcc2dea5bb9e6067673e1681d5c3cf695cee6c720fe2795be6fa5494889fee3c1491cad9bed7f604bbc41d1aa0764bcba5c610e74668e80e88d62aa53f7285f4e07951a2f4fe36f70b32567f3520055b17c5e86b6c8e7c9588ccd727ad996237a06742574bc0ebb9fe5a9aa4090ff4fdb6c29a877b9c1ef72777d8fde0eddbfd6c6d402ca38f046e3c78d2a8326492cbfdc99927e644885b3230aeab39a5a03204f39c0c9edbbb10714f239dabe284311578f017ea49203de9857eb08314a83e9e1e85bbf1bad97b588d25e4fb50d4a0d3e6c01c35cccbb052fe67749aa652d2ca508fa4c11b3987c027e2f640b8d62dfd361e31d8c1725f61b9bce571d6a17d25910689dbb71f689d6cdeb3c142723aee56e0377b6476432dc64f8026b34317bee87b1b1d70fbea72c696c8fbd498bd824142ae78b7a5ffd68ef38f50db3b5cdf300524be8859f1b13966ec776cc8509bdc7fe3e9e9bc429326da14db2a41446bd13b62b3efd09673188ca4ad853dd1bbd3ee0b5eba368727d6b2ea477675b91104c01454c6efba186007b71530c44b2eb33057e7236f12a1cb60b94955ae051e1fa706b1f2bc22f773da71410235abff72b679073a1f5949babab51aa67f29b55f56153a82e0090cb35e1fefd46fe30494645eeef9f4ef6312ee34cb3a3f104fdef2ced1b6f2ad76788675f6341866388816ddc641efe3338e116f09d3efb5a0b5677ae1147811be177a5ca9d91167f6920f078998437839935bc00f0249c03d343e99f7e8796fda728a8abd6e4fc52f861173e4303c7a2cf96cf502c5680256cc3ae2cef4ca1211c5609f25de013593599638b732e4edde3c478e46e70361a51ee28e4a470fbf53a2e5da4ff307b7a140c453394161a4a754d678235e1a97300ed6a4c8b287458457685d4eb114b65938abd1a91c46e43e209ff15e9e17e86a4d193e55c5761afec0e99124240c3995c3413bd7eb8e20fedef0b1dbdbd82d274b92e1bded2d6cbc5891d3bd1c555b02e2df5212175ba606d586e426beb35c41028f9c46ee68c258d217f88e25b57784c759367bd1c4b100546e0c18b9535622a70b4c084c8bf280d9ce37fe104661e5b48b2d4502bcdc1de08778eccaf72741e540aa4d49792b0f53c2d35375b49ef383dd132ffcca7409e75b01bcf8c16c72d445090c391b5eb2c23cf06b907710ca83370ac002c182945833e2823f06e3eccba640a2ef9078b751c029f27a341256818aa0558e5025efcd6dd8ec817bf33bc4fd11301248235692eac2d050e628416894fff765f929cd78ccc6eddcde4d1d41ee065f29dfe825d304d46ea49ef5fbc5a73cbdb0a601ca8a1967e4c8eb1e550ed7c7920181a5c6b2b5b659aad0237af23fd0c36ee7127720ec1c4ae67e6b75d999cc0a69ecfad68c95c16fb46d659c172e5f37b3264152024a73ca00ea2f57a6e0a3cb23475dd6dc70a7da4da248383c84150e0418a12dc56584a9deed72c128000ab2e7991b429cf467df15d14fd2b564b9be7245f5443dad62baf5c11b2de42064724491795cfdab2d1ec87c8955da388b3572da2312d377a8068f607ecf1d425dc0c16ed6971fa034153d0bb61daebd21b3f096138a89f7ec844f5663600590d0106d07feaf77e6a1c0790110209adb52d1dc91c83f6a5af6d9395990103533aff03405622810578a69cca364c8f99140063986560f70b232d947f52773b92668f52101d8cfab1589b18ddfd37221b4f42e8197e5fdece8f9394ca1197cd6d31be1a8a4ce23bf433553a613dd37590e875581366c22c320e5a022a33e65d93c1667befd2d33654bc28af0d89ec1c5b4dab691383588acd55bb294e13336a89387ed86afc43e7b40a40d2f01d5066d89cb5c63d49cf8a9f71a306d1afa78c79a6c747ab2c60b86579d7cc06f27780c1a2b4d0fafdddb1cff8e29c20b06e6c1e9fe3c26fc0a37bfa7c2550215224b92b91d944309bd19a37e3c70a2ac5e3f4f9dd1855c4be3dc68eecd8f5f8075919974e4e860cc8520eed66a906b976f35fefccfc9dd90deb81f01e3bb0462cc305259a2ee9b6709979b92936cb09d1f50727c70de6336804af4e6046133be0e776e9cb5616fd18c2cefa7465d32d3d7620cb2f3d3ca0daaa4cfcd26666755970993f973049eb67318bf262e29da48efc4760b4f977dad5bdec94976e0cad5e866a2e6b149ebcd121e034a50b1b1ad2b925ff32c7d84d6fca5770581fb3dcf3bb80541727bf418dc833c22531df8376ac05c677f9500ef7f03a6dcce3fc0d0e0ef57d403a011d11bc6cd4526eb3e2868cc22ef02eb7bf68d70b7d466426a6ef765a0e0f5ae4b5fe0d112d0eecb0a978000098decdc5e7cf4cecb68f41bc89909dc5969292f9b713997780b0e21cdecb7d87440ca1cefc5aeccb5ee85a5f4d5f3829e853a5c3adbca7f9781f283ae5e0be8e1aa5f5730c1e969bf6fce25221530c67478d2a1c90f5ac674eb46e580b0b84a00d64f9f98d74dc5dea24db279aedd49367424c72cba9fb67341cbef8bcd2f0ad0023fe64dd69ec8f256126a6a6810071bd01a655f68855ea05a9a110b664140e3baf8986368fffea126b2164f59a9624940b0553142964a5a3c888304906c387cfb7c83e42528e43d0db3155aaaaf18359b92af14b7c6a1e6b8582fbd39e3f0d97823c5437a2a46fcf8ea988b714d639c33d1a0a9a3a96e41e9d7e43defbdad318d6c631dfd6d6dbf5fb1c8d04813f674d91fd4fd0cc62eefdbb6d782b27aebbb9b115f6a626ca115d4ad5581b59275327e0e860b30330a52b0f785561332dd2429918b7dc3e2e2d015c16ce08b57bcb64d2253bafc1707658f361e72865498e537c447dd7677b419db7b21dbdfc6277c7816a913ffda76fd2e52702df538de0e49c9455def209bbd015200db4ecf838ee149944d0e229b519b8e237738946c87241c2fc265baaeba4f3f5b8c7285b93343aead25590f08be73d3056718b376c5d74ef7cd3d4ed7de91e7eb3c05a31c6fa1da0b08d07cbfab8ae108c34d5e39cdb967bffaaf10e49f8271dbb7d24e645cf1d5d529bbae7a4f5353d3e10b79c35e9e99321551755755b9312c2026e4603deadf65b6b51b5c746b6a5b54576390fa0b2ee4036ca931229163064ddbadf9bc69def8ff3f7d0dc59f232da15b1fea41f9a0f82af31361036546f007e81fa9a0fad8370a38f78e7aca7d8d8d986995160b75ca7c01eaa8136d970bde6ea6ae0896d2fe30febf82e7679257df6e1f8a7496c8356c413b566272ba50c98d4ce0546e1fce6177ceb6cf8c2a7efe0a65e085a174df84ee4b94b76e5041b266f2d5629b369b9b4f5b3b621d1e6eb99d5df2ae5d659e921dce3bac30bede283db80f037308ebb46b011542555d79adf2da13fb2d46bd5c3df10118b959bbb8bca4b2a868f55a67e30899a6574b3ca3ce418e99cff0d5613574438bf84b06b6d0d662584a6b5218e6778e800c9fe78312fb72b9f7db9c9686829a1d46670a7a93a2d724322a309c28215f842b6bb181dd286a0ac4e661b04a3691d5b9132bd769291c0a45e61007fcb8f2ad1def7949671bcc5ab0ae895b67b395b470f7122dfcaf37f0cef338a3323dfd908be1c5e5a2a7200c64d5ecb4379e20e7006aa9c0df4bfa620c96c03054c6b1f1f162ed9c75db34147bc934ed94aea168519d66304ccb91e9b3a2bf369e95c06d0effed74d4dfc0c2d82f690146c64763f3df1fce8c389044ad87dcd36fe44c4927e8b5e7a84790ee198d2b7fd616f40a6ad57ef169c5fa17f516eb5203f3ea27efcba5835c2efad9fa177f18e5c723859d14ce133e7711db9d4e1e69b9b4eeb4db2e2540950989e18b66b86e9379abdc7c42201efec3ae25299e8bd56cf449e119ae33008d34dcf3110b211e64747cb5246b31a63b6247a6438209c48f159ec1fe7b7152ac89377ed04ec2a4f4ba47daa49266c17d7c22cc89a90ad0147a845d7b02e312c78d37e3e6192422f409cbe1c943990beb8c119c3866de8aadf1330f15979ede874914736f67733a653f44d0a9571ebf656e9e293e5c239b175a78f456ed637c0a366b3919b35a6adba8a39180f2ebe7dc580401262e699e9f71f9a59d9c5570ba5dbc47cc4cec7730e4623dbff7d41a34613670b1bf6ec213590b09cd83e9b81520493a2fe1800c90efbc14a7a0725a087cb2f70439e0b8d5f1689152c6a8ad0af79de92cdc5ec30dd185a6c0b05d6330038bf85b91a5bf881b68893853029a56eb14dcd719d03c258946951fdd5720e6c3bea6e261b7dfabb2ae405972bb21fa61752d82fb7b68702ae92cd9a7e65fb3f027b085e7fa06cc224535d430bb6a96288086a01f7be9d30e2c5531c37c9c46cffd88a842dca4b6cf79ce48584be39729641a56d7544ea451a875b67473cdd93127dc2ac723754404d2f3d1eeca756b2510dc326d1d904cfefeee13acbf9a86472da9109ab44db0aa7729137f1389618e222c8a4f5aa1aa22ec986245c9c957c34a9ba3e2e4fff2ab4bcb1fd3107870d741538d6e5b23ac6852cde698ebb52e5469a2252561fb74a04f738f1c0cec332a930f2db7f3278e0e982fb9c06f84c88cce9627b5008921f96b563abc22558e5b5e0701ad257d6506ba60e7bb75d806a8b3691e92aa97af47cda2b54cf7fb23d2e347f4dc060161db2e5018c4bae031c953fc7cc3af660e23192cb21ecba209049985e9917f750c4a70c02b56707791f3c86a43e5f19e0718f17084d4a52dcc42cedd874717b7102ec7f3d6c7adf73a8360ec7d7d1ff5eba4b9e026a361ea069cc751f84370dc0ccb57f39442e2c04691bf0fcbbed3ac31ef74f19263aa99f95108a37e821e79d671971220d56250eb1aa2d4e1a750989272295ec1af2d46cffe9e37b3a3b9572c2e1dcfee809c98470fb827c3c8ee91f3b930a7d187339727ca6fa709733c9f430daba456943767588b9c70cb56d395d1839557d59e08cfa2006bab39e3afa9a4f8dab6f5dc9beb0f13b84fc647d8dcca9e981d9c66a50ed7436551c402eb7bf68d70b7d466426a6ef765a0e0f5ae4b5fe0d112d0eecb0a978000098decdc5e7cf4cecb68f41bc89909dc5969292f9b713997780b0e21cdecb7d87440ca1cefc5aeccb5ee85a5f4d5f3829e853a5c3adbca7f9781f283ae5e0be8e1aa5f5730c1e969bf6fce25221530c67478d2a1c90f5ac674eb46e580b0b84a00d64f9f98d74dc5dea24db279aedd49367424c72cba9fb67341cbef8bcd2f0ad0023fe64dd69ec8f256126a6a6810071bd01a655f68855ea05a9a110b664140e3baf8986368fffea126b2164f59a9624940b0553142964a5a3c888304906c387cfb7c83e42528e43d0db3155aaaaf18359b92af14b7c6a1e6b8582fbd39e3f0d97823c5437a2a46fcf8ea988b714d639c33d1a0a9a3a96e41e9d7e43defbdad318d6c631dfd6d6dbf5fb1c8d04813f674d91fd4fd0cc62eefdbb6d782b27aebbb9b115f6a626ca115d4ad5581b59275327e0e860b30330a52b0f785561332dd2429918b7dc3e2e2d015c16ce08b57bcb64d2253bafc1707658f361e72865498e537c447dd7677b419db7b21dbdfc6277c7816a913ffda76fd2e52702df538de0e49c9455def209bbd015200db4ecf838ee149944d0e229b519b8e237738946c87241c2fc265baaeba4f3f5b8c7285b93343aead25590f08be73d3056718b376c5d74ef7cd3d4ed7de91e7eb3c05a31c6fa1da0b08d07cbfab8ae108c34d5e39cdb967bffaaf10e49f8271dbb7d24e645cf1d5d529bbae7a4f5353d3e10b79c35e9e99321551755755b9312c2026e4603deadf65b6b51b5c746b6a5b54576390fa0b2ee4036ca931229163064ddbadf9bc69def8ff3f7d0dc59f232da15b1fea41f9a0f82af31361036546f007e81fa9a0fad8370a38f78e7aca7d8d8d986995160b75ca7c01eaa8136d970bde6ea6ae0896d2fe30febf82e7679257df6e1f8a7496c8356c413b566272ba50c98d4ce0546e1fce6177ceb6cf8c2a7efe0a65e085a174df84ee4b94b76e5041b266f2d5629b369b9b4f5b3b621d1e6eb99d5df2ae5d659e921dce3bac30bede283db80f037308ebb46b011542555d79adf2da13fb2d46bd5c3df10118b959bbb8bca4b2a868f55a67e30899a6574b3ca3ce418e99cff0d5613574438bf84b06b6d0d662584a6b5218e6778e800c9fe78312fb72b9f7db9c9686829a1d46670a7a93a2d724322a309c28215f842b6bb181dd286a0ac408965a9a837648018e37b2d18aae9553ba971e2dcd77be87ea8d684629235b97972455feb9651ca9d1b8f41ab6e69284079b17d9ec35f6473dac58dfe7fa16638c2ff164859d01f68cc433d860496dedd894b3f0f133a229a49f5f83e40b90f997c99964c27348f81381fdfb7189e7626afcf4283e9a04b2d4918f1f2db929b0a2c74e02103d702b048d37a3e4c87622cc9f7ae00facd5c99f58df8869460dc0f64a17bfba43b7a5b10caaaaa2f8405a9ac888467d6766a5328aaed01756217ed0426b8a8147012961137c98735761ce25d3a0afe9bc62eb04b7588b3e691074885f8a81e2332d4202cc3b450b96ae01bf5d2f51f6362c5e587f2eec7f76549f884e8af9a0d6cc3dccdd5f8c840bb0d52368651ab323b379af7dd1d109e9dc50820d2db13b3f4427503820c04e2262f3e960b71f9e232e3d1beffc8a165c9fdd49e0c8c235ac2da09015509938aa46e54fb88d677e48048f23fed4cc1f18b03978dd83499b30fc1f81918cbf341eefa7a2290d1111a914d418e3baeb8bd365d702eb7bf68d70b7d466426a6ef765a0e0f5ae4b5fe0d112d0eecb0a978000098decdc5e7cf4cecb68f41bc89909dc5969292f9b713997780b0e21cdecb7d87440ca1cefc5aeccb5ee85a5f4d5f3829e853a5c3adbca7f9781f283ae5e0be8e1aa5f5730c1e969bf6fce25221530c67478d2a1c90f5ac674eb46e580b0b84a00d64f9f98d74dc5dea24db279aedd49367424c72cba9fb67341cbef8bcd2f0ad0023fe64dd69ec8f256126a6a6810071bd01a655f68855ea05a9a110b664140e3baf8986368fffea126b2164f59a9624940b0553142964a5a3c888304906c387cfb7c83e42528e43d0db3155aaaaf18359b92af14b7c6a1e6b8582fbd39e3f0d97823c5437a2a46fcf8ea988b714d639c33d1a0a9a3a96e41e9d7e43defbdad318d6c631dfd6d6dbf5fb1c8d04813f674d91fd4fd0cc62eefdbb6d782b27aebbb9b115f6a626ca115d4ad5581b59275327e0e860b30330a52b0f785561332dd2429918b7dc3e2e2d015c16ce08b57bcb64d2253bafc1707658f361e72865498e537c447dd7677b419db7b21dbdfc6277c7816a913ffda76fd2e52702df538de0e49c9455def209bbd015200db4ecf838ee149944d0e229b519b8e237738946c87241c2fc265baaeba4f3f5b8c7285b93343aead25590f08be73d3056718b376c5d74ef7cd3d4ed7de91e7eb3c05a31c6fa1da0b08d07cbfab8ae108c34d5e39cdb967bffaaf10e49f8271dbb7d24e645cf1d5d529bbae7a4f5353d3e10b79c35e9e99321551755755b9312c2026e4603deadf65b6b51b5c746b6a5b54576390fa0b2ee4036ca931229163064ddbadf9bc69def8ff3f7d0dc59f232da15b1fea41f9a0f82af31361036546f007e81fa9a0fad8370a38f78e7aca7d8d8d986995160b75ca7c01eaa8136d970bde6ea6ae0896d2fe30febf82e7679257df6e1f8a7496c8356c413b566272ba50c98d4ce0546e1fce6177ceb6cf8c2a7efe0a65e085a174df84ee4b94b76e5041b266f2d5629b369b9b4f5b3b621d1e6eb99d5df2ae5d659e921dce3bac30bede283db80f037308ebb46b011542555d79adf2da13fb2d46bd5c3df10118b959bbb8bca4b2a868f55a67e30899a6574b3ca3ce418e99cff0d5613574438bf84b06b6d0d662584a6b5218e6778e800c9fe78312fb72b9f7db9c9686829a1d46670a7a93a2d724322a309c28215f842b6bb181dd286a0ac46ee0a5c1f9b7ebcbbd9c83634e1278db2702dc16c1960e4623e64c558b31ac687a90ec765d8c61ec58c997ef06fac2041d2d8fbf67612a8e35118fa6c435e04293dfe0cc8f659a917cbac1a39488b49d1d2a05dc303d30e6c06359a5efd38eae1b6ed8828f4f7569c5c8f5d9d70fb8162d8c9041868d85cac3b646b43e86935ac369bb300e4039a87e49e0d66a8d93ae77acd751b11ba8540b0826b60deb57ccd2ddfd7300004ffa8f423b61e1efc4a71105007c51b37fb10b87e98b0de920833a5c8adcf226ff8800a4bb23cbb1c6f919704c729d6b9b2247b7f12d26f70f71a4a371f6c6a8bdc466b237c74dada8f7c2503c947dee039562f4d4aadb039a2d6c0fa290231738d2a88232e7174e50cf9c3ef0c52a7ac9f9da8ca41d32c69cf7a08580ca02282a069e21152e6575a9d4feca5224829524555fc9d23afa3eed38b906068e07426c0dca329af0577c23dd05a3bbd3daf990d7786cea4945a950f402eb7bf68d70b7d466426a6ef765a0e0f5ae4b5fe0d112d0eecb0a978000098decdc5e7cf4cecb68f41bc89909dc5969292f9b713997780b0e21cdecb7d87440ca1cefc5aeccb5ee85a5f4d5f3829e853a5c3adbca7f9781f283ae5e0be8e1aa5f5730c1e969bf6fce25221530c67478d2a1c90f5ac674eb46e580b0b84a00d64f9f98d74dc5dea24db279aedd49367424c72cba9fb67341cbef8bcd2f0ad0023fe64dd69ec8f256126a6a6810071bd01a655f68855ea05a9a110b664140e3baf8986368fffea126b2164f59a9624940b0553142964a5a3c888304906c387cfb7c83e42528e43d0db3155aaaaf18359b92af14b7c6a1e6b8582fbd39e3f0d97823c5437a2a46fcf8ea988b714d639c33d1a0a9a3a96e41e9d7e43defbdad318d6c631dfd6d6dbf5fb1c8d04813f674d91fd4fd0cc62eefdbb6d782b27aebbb9b115f6a626ca115d4ad5581b59275327e0e860b30330a52b0f785561332dd2429918b7dc3e2e2d015c16ce08b57bcb64d2253bafc1707658f361e72865498e537c447dd7677b419db7b21dbdfc6277c7816a913ffda76fd2e52702df538de0e49c9455def209bbd015200db4ecf838ee149944d0e229b519b8e237738946c87241c2fc265baaeba4f3f5b8c7285b93343aead25590f08be73d3056718b376c5d74ef7cd3d4ed7de91e7eb3c05a31c6fa1da0b08d07cbfab8ae108c34d5e39cdb967bffaaf10e49f8271dbb7d24e645cf1d5d529bbae7a4f5353d3e10b79c35e9e99321551755755b9312c2026e4603deadf65b6b51b5c746b6a5b54576390fa0b2ee4036ca931229163064ddbadf9bc69def8ff3f7d0dc59f232da15b1fea41f9a0f82af31361036546f007e81fa9a0fad8370a38f78e7aca7d8d8d986995160b75ca7c01eaa8136d970bde6ea6ae0896d2fe30febf82e7679257df6e1f8a7496c8356c413b566272ba50c98d4ce0546e1fce6177ceb6cf8c2a7efe0a65e085a174df84ee4b94b76e5041b266f2d5629b369b9b4f5b3b621d1e6eb99d5df2ae5d659e921dce3bac30bede283db80f037308ebb46b011542555d79adf2da13fb2d46bd5c3df10118b959bbb8bca4b2a868f55a67e30899a6574b3ca3ce418e99cff0d5613574438bf84b06b6d0d662584a6b5218e6778e800c9fe78312fb72b9f7db9c9686829a1d46670a7a93a2d724322a309c28215f842b6bb181dd286a0ac4e83028ed2b74913030a1a3106598ff057f0996c77928ce7e05c5cb0a39a08e5ce9bb28654cc7687440a343e0fc3bf5b7ba9a978e07e794c9db24b286c2f4a940919023cb21f4e09ba92037ea2d6e780a495f756d5da9058463ef8a3a4acaffdc84cce6d6db91e18f4801cfbfa9fa7358f6f71b32023edecf12ec7053de464e34e2c483bcf3ddadba85f4d38d1d43afbe5aa538f2fec112f75ae177e812863a4f573348ebd29c37c818a0433d1a89a7668dd8e27a179e6126127c88efcee4caf29de8f7fc75fc1739bcd12cc96f0b0a6dd7e7eb7c428b9f305a92760577f9e4bd319276fde340819de8f54bebf8f76bc8374a2eded4bd75e16538abe2c584355c2c21a73f3b5a549033f2ee0feccdd23bc90f21f092e4441c90a2e35fee541c55873e7b1ea0134b818a952b1bd71ce4fa33eab2a4e6c3fe10d388ff9a2541bad9cbde324be8276ce71ac38266f862be639687a692a41c49b508837fa86d390495b218d892d61f7f8d16f687e73a8c0a714467d532b56fd3cbb272ea84b19569568de2b6f1533123bfd349301f6a67df343b8055d738f7ba316b0cef42de992dd7a15829e95f30b75b68cbc8ab241accb8dffc3f081f0588ac08ec63634c6bbb7dae361f2bcff6ad3a384786a29909cd61272752a1ec66d0c06bc155c2940a6932336a775aecd64f0b2b568e445759a6b184cc582da9f2ca74377e75ac7a84526090fcb421c936d9eaaa92a296499fc13bf72a7145e10b38e53986dd518da93ee30970840b5450dc6453bd311f1e0d8033f270173fef779530ffa476a872e53fcc91a1f3e052a28625d0daf9030a4f5fd1156a060ba7bbffe043002d2f4613f51e29198c8a0bc32b98d4316328a6a4f00a6b0993674e862b14d2ca5a5d26d31ce9686404aa444636ffa6719c51081d404a90dcc0ab52f889c380e1bcea541e732824fde69c42ac7c0499eda2e9c4437301a3c5cab46ff90f3b4b2a8cc9a12c27f7218dcae5f690a9270fef744a70ad0f88a8123afc227aadb47883f77050b30e76d345afeec255267e4b6333f8df564867fc7dc897632e5f24ab54250864c1058de8c6bc2abce772ffd5d48b6ffaeee10684780cd7da80d794e71ca098d1ae692e207697b6c9292770e689e5e25d774288181b52b0c948be78ad163be1ccdbade0c0791459fa6727978eeb42f6aa4f3ab8774282cfcaef3182e6767fb1aec05d3c1f6179d00c73dd929941a4212fac255546bfc8302feebd1ab363cb4be0b7958a46b66017a2b165109f5311577d6d099a015ad37f3ece2086ed8623a03d6f95ff76c04aad14065df3b496adfc575ab752bdc33ebc88714cfd003bf7f99c770a51cb10950f9852d5aeaafb41c372f1024fe59f75d2684131c7ad0ac3698004d5c91cbd1ff5e856ef4f5711f5dfc6f9a0b0e6d56f48fa2d7e66a98e8441805f9d7863c7f07dbe374c4a2ba9c7cc5396b4e167dc6130dfdb998f4e761f4b9aebf23c982aede9148a526d852fffa6c622c647eedd89722abb8a76ac40f14759d9f7bebe500058a0715f90830ca6190220e7adb970c9ce1347a7a5a396bc2ca3e3dcd2278b62d78aeba79a4c25a76205943eadda7649e809f942fc0737d063f5b2470b8dc66f4773227072ef081e51f93cec35560d49b1a8edf893b38511fbdbb2e257334211068e0e2d50dab3a6b1014aeccf9e10b2eb636c1d77941d15acec274d1cd2f3ba7d573de2894460ea98f64bedf80794e3066818f44c2d309f325308042f862b3d6934f0f92a25d894f591bb5282f1ec0a59040c330acbe5a9825ed6819d03d79dbc8336f59809d66ecf3c032da9789ac1d4d2202a3be8f4d0e2102f1da334180724e60221c2ad92d556a87c122c9ecee7306dad902ec21fcf773e0be33f1284f8b1bcc4681fbcb0de657f4eb2fb5061751880c3322c17a026c21f25b1cb8f9c60e1467bb6b7fb272c68b0ac45a2f1b8e81d14e287fe7b4802135ec241d799d805cb3b71e4806980ebc800af7b4a9ff715d49a0378036415f8166ccb51fd49c61dc301f9853316341241a69d9845594e9caedaafc4dc5cbf694b13d5724edc2cb4deaf5235184d44cefa97bb26a3062401ab949a4d3bcf9742ba1771b00ff81495b678a912c9d1d3b1c2780a3bcd2fe7f30c572d1667ca5e57b0123ac56d235eb833114e7913740ac3a9bea5b7f124d694b266554d0ec0b8be989b0bbe30b1bb4e0160467ff47462bc35c94191a7c093384afbf818da969a497836b872b5c81350f0eed20d3e39c7a5e845bee56b7775d19c12ad98c7771615738445d3aed1e3da7f58c1afcabc6ad9df686785f2a944b2e8ab8c9567e0f2a3989c89bb9d8f12e807738f4672a535df0573a81ec80316eb654b56908b52c0802de7b323140d90a9675e81db4a904767c981f5abf2823cc5fa4b25933e3fd3db97921553cbb55d9eaaaca2d80d1909a1ce524c6900db89dda506b217726214baaeee02d7a3d8f850711a52b74d5f472148657a5a3ddf0d84737399e2cdfd60575acd9a10724cfb1a96f6f68bd809468f75322a38b97a162991c41382fb373fcb1fc194955350dd5f39c4e4b078d3570abdc6038cf64f2d54bac91a17ed555fe2e6558072cceedeead55f37689f264c266f4faf1b39d7276b0f37ce6ce2ae00212f8b4c7626f531f85a816597e5aed827c1f175f780f908d4b87bee36cdfedfc946e601f59e1ffa70f825c1dcb68b42d5f4a3df2102ac98eece944c9ad8eab6d09a653ff4c740f17c96a2be6521759ddfab72e37b8a319582a3e17919c9cb3d18eb6ae616d7a408db51bcd1d3b0c77a88c10a563dbb54557be8005d3369a0153d93b488590d428cc7ca74032e56e42bb3e0956e4046ea9cbdc129f97e2c60c57f4b25f9a25f1243fecc4519189222e2cc42d658dc11637d3968aa54bcf84f5560ad002dcae5f267fe4942376fadd754a046200c0f54bd5603d8864ae8c6a91c01dcdb1f621a76dcf036cfeb0daf549ba23c84691e39586688ec65a1bf7a15f3a177e2f8fedfcaf2991044a6afd6e2f4768ea8f71a4b3464aa2126767d69f51e0578fe0725af2ff5be16e45faaa1f247c0fc2f0d5d4508faa2e9f39db47e97989d22686fe0bdd5ce6396bbe88160e038d4b514fef095d02fd1c630a73040ee19b3bd243adbbbdf04fce8d810b52bceeb0c3a00a9baa590c478774af77969d8062c8d582ff89eec40fa7a57edcadbb1b3c0691bc88ba3a6fc499503e33652c7f2b34046eaea748e003ca77fe3d83ed0aa17089520f69718754eedfa26fcbd7cf0caac42a4f5b70c881f082d035be4ae08b84f154e9c61ac6ad1db11677326b287b4a48421f26f3b80a415a07196c656725a54ba141eb3a1c72897b7433aee602cad95dd17ebf602eb7bf68d70b7d466426a6ef765a0e0f5ae4b5fe0d112d0eecb0a978000098decdc5e7cf4cecb68f41bc89909dc5969292f9b713997780b0e21cdecb7d87440ca1cefc5aeccb5ee85a5f4d5f3829e853a5c3adbca7f9781f283ae5e0be8e1aa5f5730c1e969bf6fce25221530c67478d2a1c90f5ac674eb46e580b0b84a00d64f9f98d74dc5dea24db279aedd49367424c72cba9fb67341cbef8bcd2f0ad0023fe64dd69ec8f256126a6a6810071bd01a655f68855ea05a9a110b664140e3baf8986368fffea126b2164f59a9624940b0553142964a5a3c888304906c387cfb7c83e42528e43d0db3155aaaaf18359b92af14b7c6a1e6b8582fbd39e3f0d97823c5437a2a46fcf8ea988b714d639c33d1a0a9a3a96e41e9d7e43defbdad318d6c631dfd6d6dbf5fb1c8d04813f674d91fd4fd0cc62eefdbb6d782b27aebbb9b115f6a626ca115d4ad5581b59275327e0e860b30330a52b0f785561332dd2429918b7dc3e2e2d015c16ce08b57bcb64d2253bafc1707658f361e72865498e537c447dd7677b419db7b21dbdfc6277c7816a913ffda76fd2e52702df538de0e49c9455def209bbd015200db4ecf838ee149944d0e229b519b8e237738946c87241c2fc265baaeba4f3f5b8c7285b93343aead25590f08be73d3056718b376c5d74ef7cd3d4ed7de91e7eb3c05a31c6fa1da0b08d07cbfab8ae108c34d5e39cdb967bffaaf10e49f8271dbb7d24e645cf1d5d529bbae7a4f5353d3e10b79c35e9e99321551755755b9312c2026e4603deadf65b6b51b5c746b6a5b54576390fa0b2ee4036ca931229163064ddbadf9bc69def8ff3f7d0dc59f232da15b1fea41f9a0f82af31361036546f007e81fa9a0fad8370a38f78e7aca7d8d8d986995160b75ca7c01eaa8136d970bde6ea6ae0896d2fe30febf82e7679257df6e1f8a7496c8356c413b566272ba50c98d4ce0546e1fce6177ceb6cf8c2a7efe0a65e085a174df84ee4b94b76e5041b266f2d5629b369b9b4f5b3b621d1e6eb99d5df2ae5d659e921dce3bac30bede283db80f037308ebb46b011542555d79adf2da13fb2d46bd5c3df10118b959bbb8bca4b2a868f55a67e30899a6574b3ca3ce418e99cff0d5613574438bf84b06b6d0d662584a6b5218e6778e800c9fe78312fb72b9f7db9c9686829a1d46670a7a93a2d724322a309c28215f842b6bb181dd286a0ac46c8a9923f7c39e7d670d975e0f00510326b2f1c199696b0fcb52db9f21f507d2b212446c759f861824cccc1fd3ae2e30b057fe8af8712cc3ae8d7b12033b50936ab066b4f033c159490eb661617b5d29b41c28a8023d8c1d5fb57f156941a32f3f41b5efa4720440c7a3c2e8cf406385dd59540ffab049ef8bf1b7caf563ec0d2ffe5fad09bd9ad763e89f4497c629613391f59f2b22c5bd5a838223209b3b6ba6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootelixir115-1.15.7-150300.7.5.1.src.rpmelixir-docelixir115-doc     elixirrpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PartialHardlinkSets)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)1.15.73.0.4-14.6.0-14.0.4-14.0-15.2-1elixir-doc4.14.3e\eReOldS@c=@cS@cbQu@b@aeaaaaS`.`D`D`T@_=____@^&@^H] @]N@] \@\\k\N\(@\2\\U@[%@[8@ZJ@Y@YY\YXXoW1@W@WWu Wnr@W%V͛@V=@Vj@VKUy@UPUMUMmatwey.kornilov@gmail.comsflees@suse.dematwey.kornilov@gmail.comdimstar@opensuse.orgpirateclip@protonmail.comfabrizio.sestito@suse.comfabrizio.sestito@suse.comfabrizio.sestito@suse.comfabrizio.sestito@suse.comfabrizio.sestito@suse.comdev@mail.smarquardt.spacedev@mail.smarquardt.spacematwey.kornilov@gmail.comdev@mail.smarquardt.spacedev@mail.smarquardt.spacedev@mail.smarquardt.spacedev@mail.smarquardt.spacedev@mail.smarquardt.spacedev@mail.smarquardt.spacedev@mail.smarquardt.spacedev@mail.smarquardt.spacedev@mail.smarquardt.spacegsantomaggio@suse.comdev@mail.smarquardt.spacegsantomaggio@suse.dematwey.kornilov@gmail.comgsantomaggio@suse.deg.santomaggio@gmail.comg.santomaggio@gmail.comg.santomaggio@gmail.comg.santomaggio@gmail.comg.santomaggio@gmail.commatwey.kornilov@gmail.commatwey.kornilov@gmail.comjengelh@inai.dematwey.kornilov@gmail.comg.santomaggio@gmail.comdevelop7@develop7.infodevelop7@develop7.infogutigen@protonmail.chdevelop7@develop7.infodevelop7@develop7.infodevelop7@develop7.infodevelop7@develop7.infodevelop7@develop7.infodevelop7@develop7.infodevelop7@develop7.infodevelop7@develop7.infodevelop7@develop7.infodevelop7@develop7.infopereira.alex@gmail.comdevelop7@develop7.infopereira.alex@gmail.comidonmez@suse.comjiri.bati.novak@gmail.commatwey.kornilov@gmail.commatwey.kornilov@gmail.commatwey.kornilov@gmail.commatwey.kornilov@gmail.com- Use pregenerated documentation- Switch from %patch0 to %autosetup- Update to Elixir 1.15.7: * Fix build for Erlang 26 * Changelog available at https://hexdocs.pm/elixir/1.15.7/changelog.html - Add 0001-Use-PID-valid-for-32-bit-systems-closes-12741.patch: * Fix build for 32bit - Add 0001-Use-PID-valid-for-32-bit-systems-followup-to-12741-1.patch: * Fix build for 32bit- Add _multibuild to define 2nd spec file as additional flavor. Eliminates the need for source package links in OBS.- Drop git as a requires and switch buildrequires from git to git-core * Git is not needed to use Elixir, only to run some tests (which git-core can accomplish on its own without git)- Elixir 1.14.2 * 1. Enhancements Elixir [Code] Add Code.eval_quoted_with_env/4 with support for the :prune_binding option ExUnit [ExUnit.Case] Allow test cases to not be registered on use [ExUnit.DocTest] Include :doctest and :doctest_line as meta tags [ExUnit.Formatter] Expose ExUnit.Formatter.format_assertion_diff/4 Mix [Mix] Mix.install/2 accepts atoms as paths * 2. Bug fixes Elixir [Code.Formatter] Fix size*unit shortcut in bitstring [Kernel] Generate unique variables for macro expansion of defguard [Protocol] Expand :for in protocols with the appropriate env ExUnit [ExUnit] Do not run duplicate cases on ExUnit.run/1 Mix [mix test] Ensure proper error message when there is no test directory - Elixir 1.14.1 * 1. Enhancements Elixir [Kernel] Perform partial expansion of literals in module attributes [Kernel] Do not add compile-time dependencies for literals as defaults in Application.compile_env/3 inside module attributes [Macro] Add Macro.expand_literals/2 and Macro.expand_literals/3 [System] Add :close_stdin to System.shell/2 Mix [mix test] Accept --all-warnings option * 2. Bug fixes Elixir [Kernel] Fix misleading warning when :uniq is given in for comprehensions and the result is unused [Kernel] Improve error message for when there is a conflicting struct and ignoring module conflict [Kernel] Do not delete @enforce_keys attribute after defstruct declaration [Kernel] Do not crash the checker on modules with missing :debug_info chunk [Macro] Fix error in Macro.to_string/2 when converting an AST with :erlang.binary_to_atom/2 [String] Fix String.split/3 and String.next_grapheme/1 returning invalid results on invalid UTF-8 encoding [System] Do not close stdin by default in System.shell/2 [URI] Do not return uri.port as :undefined in certain cases in URI.new/1 ExUnit [ExUnit.DocTest] Do not crash when both :moduledoc and functions are specified in :only IEx [CLI] Fix invalid argument handling when --no-pry is given Mix [mix format] Do not cache inputs from .formatter.exs so they are properly re-evaluted on every call- Elixir 1.14 * 1. Enhancements EEx [EEx] Support multi-line comments to EEx via <%!-- --%> [EEx] Add EEx.tokenize/2 Elixir [Access] Add Access.slice/1 [Application] Add Application.compile_env/4 and Application.compile_env!/3 to read the compile-time environment inside macros [Calendar] Support ISO8601 basic format parsing with DateTime.from_iso8601/2 [Calendar] Add day/hour/minute on add/diff across different calendar modules [Code] Add :normalize_bitstring_modifiers to Code.format_string!/2 [Code] Emit deprecation and type warnings for invalid options in on Code.compile_string/2 and Code.compile_quoted/2 [Code] Warn if an outdated lexical tracker is given on eval [Code] Add Code.env_for_eval/1 and Code.eval_quoted_with_env/3 [Code] Improve stacktraces from eval operations on Erlang/OTP 25+ [Code.Fragment] Add support for __MODULE__ in several functions [Code.Fragment] Support surround and context suggestions across multiple lines [Enum] Allow slicing with steps in Enum.slice/2 [File] Support dereference_symlinks: true in File.cp/3 and File.cp_r/3 [Float] Do not show floats in scientific notation if below 1.0e16 and the fractional value is precisely zero [Float] Add Float.min_finite/0 and Float.max_finite/0 [Inspect] Improve error reporting when there is a faulty implementation of the Inspect protocol [Inspect] Allow :optional when deriving the Inspect protocol for hiding fields that match their default value [Inspect] Inspect struct fields in the order they are declared in defstruct [Inspect] Use expression-based inspection for Date.Range, MapSet, and Version.Requirement [IO] Support Macro.Env and keywords as stacktrace definitions in IO.warn/2 [IO] Add IO.ANSI.syntax_colors/0 and related configuration to be shared across IEx and dbg [Kernel] Add new dbg/0-2 macro [Kernel] Allow any guard expression as the size of a bitstring in a pattern match [Kernel] Allow composite types with pins as the map key in a pattern match [Kernel] Print escaped version of control chars when they show up as unexpected tokens [Kernel] Warn on confusable non-ASCII identifiers [Kernel] Add .. as a nullary operator that returns 0..-1//1 [Kernel] Implement Unicode Technical Standard #39 recommendations. In particular, we warn for confusable scripts and restrict identifiers to single-scripts or highly restrictive mixed-scripts [Kernel] Automatically perform NFC conversion of identifiers [Kernel] Add binary_slice/2 and binary_slice/3 [Kernel] Lazily expand module attributes to avoid compile-time deps [Kernel] Automatically cascade generated: true annotations on macro expansion [Keyword] Add Keyword.from_keys/2 and Keyword.replace_lazy/3 [List] Add List.keysort/3 with support for a sorter function [Macro] Add Macro.classify_atom/1 and Macro.inspect_atom/2 [Macro] Add Macro.expand_literal/2 and Macro.path/2 [Macro.Env] Add Macro.Env.prune_compile_info/1 [Map] Add Map.from_keys/2 and Map.replace_lazy/3 [MapSet] Add MapSet.filter/2, MapSet.reject/2, and MapSet.symmetric_difference/2 [Node] Add Node.spawn_monitor/2 and Node.spawn_monitor/4 [Module] Support new @after_verify attribute for executing code whenever a module is verified [PartitionSupervisor] Add PartitionSupervisor that starts multiple isolated partitions of the same child for scalability [Path] Add Path.safe_relative/1 and Path.safe_relative_to/2 [Registry] Add Registry.count_select/2 [Stream] Add Stream.duplicate/2 and Stream.transform/5 [String] Support empty lookup lists in String.replace/3, String.split/3, and String.splitter/3 [String] Allow slicing with steps in String.slice/2 [Task] Add :zip_input_on_exit option to Task.async_stream/3 [Task] Store :mfa in the Task struct for reflection purposes [URI] Add URI.append_query/2 [Version] Add Version.to_string/1 [Version] Colorize Version.Requirement source in the Inspect protocol ExUnit [ExUnit] Add ExUnit.Callbacks.start_link_supervised!/2 [ExUnit] Add ExUnit.run/1 to rerun test modules [ExUnit] Colorize summary in yellow with message when all tests are excluded [ExUnit] Display friendly error when test name is too long IEx [IEx] Evaluate --dot-iex line by line [IEx] Add line-by-line evaluation of IEx breakpoints [IEx.Autocomplete] Autocomplete bitstrings modifiers (after :: inside <<...>>) [IEx.Helpers] Allow an atom to be given to pid/1 [IEx.Helpers] Support sigils in h/1 Logger [Logger] Add Logger.put_process_level/2 Mix [Mix] Add :config_path and :lockfile options to Mix.install/2 [mix compile] Add --no-optional-deps to skip optional dependencies to test compilation works without optional dependencies [mix compile] Include column information on error diagnostics when possible [mix deps] Mix.Dep.Converger now tells which deps formed a cycle [mix do] Support --app option to restrict recursive tasks in umbrella projects [mix do] Allow using + as a task separator instead of comma [mix format] Support filename in mix format - when reading from stdin [mix format] Compile if mix format plugins are missing [mix new] Do not allow projects to be created with application names that conflict with multi-arg Erlang VM switches [mix profile] Return the return value of the profiled function [mix release] Make BEAM compression opt-in [mix release] Let :runtime_config_path accept false to skip the config/runtime.exs [mix test] Improve error message when suite fails due to coverage [mix test] Support :test_elixirc_options and default to not generating docs nor debug info chunk for tests [mix xref] Support --group flag in mix xref graph * 2. Bug fixes Elixir [Calendar] Handle widths with "0" in them in Calendar.strftime/3 [CLI] Improve errors on incorrect --rpc-eval usage [CLI] Return proper exit code on Windows [Code] Do not emit warnings when formatting code [Enum] Allow slices to overflow on both starting and ending positions [Kernel] Do not allow restricted characters in identifiers according to UTS39 [Kernel] Define __exception__ field as true when expanding exceptions in typespecs [Kernel] Warn if any of True, False, and Nil aliases are used [Kernel] Warn on underived @derive attributes [Kernel] Remove compile-time dependency from defimpl :for [Kernel] Track all arities on imported functions [Kernel] Fix equality in guards for dynamic ranges without steps [Module] Fix loop while unifying type variables [Protocol] Warn if a protocol has no definitions [Regex] Show list options when inspecting a Regex manually defined with Regex.compile/2 [String] Allow slices to overflow on both starting and ending positions [System] Raise non-generic exception on missing env in System.fetch_env!/1 to mirror map operations ExUnit [ExUnit] Do not crash when diffing unknown bindings in guards [ExUnit] Properly print diffs when comparing improper lists with strings at the tail position [ExUnit] Add short hash to tmp_dir in ExUnit to avoid test name collision [ExUnit] Do not store logs in the CLI formatter (this reduces memory usage for suites with capture_log) [ExUnit] Run ExUnit.after_suite/1 callback even when no tests run [ExUnit] Fix scenario where setup with imported function from within describe failed to compile IEx [IEx] Disallow short-hand pipe after matches [IEx] Fix exports/1 in IEx for long function names Mix [mix compile.elixir] Fix --warnings-as-errors when used with --all-warnings [mix compile.elixir] Ensure semantic recompilation cascades to path dependencies [mix compile.elixir] Lock the compiler to avoid concurrent usage [mix format] Do not add new lines if the formatted file is empty [mix format] Properly compile dependencies on mix format [mix release] Only set RELEASE_MODE after env.{sh,bat} are executed [mix release] Allow application mode configuration to cascade to dependencies [mix xref] Do not emit already consolidated warnings during mix xref trace [Mix] Do not start apps with runtime: false on Mix.install/2 * 3. Soft deprecations (no warnings emitted) Elixir [File] Passing a callback as third argument to File.cp/3 and File.cp_r/3 is deprecated. Instead pass the callback the :on_conflict key of a keyword list EEx [EEx] Using <%# ... %> for comments is deprecated. Please use <% # ... %> or the new multi-line comments with <%!-- ... --%> Logger [Logger] Deprecate Logger.enable/1 and Logger.disable/1 in favor of Logger.put_process_level/2 Mix [mix cmd] The --app option in mix cmd CMD is deprecated in favor of the more efficient mix do --app app cmd CMD * 4. Hard deprecations Elixir [Application] Calling Application.get_env/3 and friends in the module body is now discouraged, use Application.compile_env/3 instead [Bitwise] use Bitwise is deprecated, use import Bitwise instead [Bitwise] ~~~ is deprecated in favor of bnot for clarity [Kernel.ParallelCompiler] Returning a list or two-element tuple from :each_cycle is deprecated, return a {:compile | :runtime, modules, warnings} tuple instead [Kernel] Deprecate the operator <|> to avoid ambiguity with upcoming extended numerical operators [String] Deprecate passing a binary compiled pattern to String.starts_with?/2 Logger [Logger] Deprecate $levelpad on message formatting Mix [Mix] Mix.Tasks.Xref.calls/1 is deprecated in favor of compilation tracers * 5. Backwards incompatible changes Mix [mix local.rebar] Remove support for rebar2, which has not been updated in 5 years, and is no longer supported on recent Erlang/OTP versions- Elixir 1.13.4 * 1. Enhancements Elixir [Code] Allow iodata to be returned in sigil formatting functions [Code] Pass opening delimiter information to sigil formatting functions * 2. Bug fixes Elixir [Kernel] Tweak type unification to fix infinite loop with recursive vars [Kernel] Add compile-time dependencies on require [Registry] Make Registry send work with named triplets * 3. Deprecations Mix [mix rebar] Deprecate Rebar 2 as it no longer works on Erlang/OTP 25- Elixir 1.13.3 * 1. Enhancements Mix [mix format] Supply file and line to formatter plugins [mix format] Support embedded Elixir expressions inside formatter plugins * 2. Bug fixes Elixir [Code] Fix duplicate bindings causing errors during evaluation [Kernel] Make sure signatures stored in the Documentation chunk does not contain newlines [Kernel] Fix infinite loop when compiling guards with recursive map access [Macro] Fix error on Macro.to_string/1 when the plain alias Elixir is given [String] Fix error for certain codepoint combinations in String.split_at/2 Mix [mix compile] Recompile project files when exports from dependencies change [mix test] Fix total coverage always showing in red even when above the threshold- Elixir 1.13.2 * 1. Enhancements Mix [mix format] Allow plugins to also format .ex and .exs files [mix release] Allow bypassing application mode validation in release spec [mix test] Print a message when the suite fails due to the coverage threshold * 2. Bug fixes Elixir [Code] Do not emit warnings on Code.Fragment.container_cursor_to_quoted/2 [Kernel] Fix a crash when a for-comprehension with :uniq was used inside another comprehension with :uniq [Kernel] Ensure env.context_modules is properly set inside optimized defmodule [Keyword] Deprecate the recently added Keyword.map/2 as it is equivalent to Keyword.new/2 [Map] Deprecate the recently added Map.map/2 as it is equivalent to Map.new/2 [Protocol] Warn on zero arity callbacks inside protocols- Elixir 1.13.1 * 1. Bug fixes Elixir [Code] Do not show code snippets in `SyntaxError` and `TokenMissingError` if line is empty [Exception] Do not fail blaming `ArgumentError` for improper lists on `apply/3` [Macro] Set a max `line_length` for `Macro.to_string/1` [Macro] Fix formatting of lists on module attributes for `Macro.to_string/1` [String] Fix incorrect codepoint byte counting in `slice` with negative positions in ranges [Task] Ensure async streams can be consumed from another process than the one that creates them [URI] Undeprecate `URI.parse/1` as `URI.new/1` is too strict in many common cases [URI] Make sure `URI.new/1` returns nil for empty paths IEx [IEx] Make sure the `--version` flag halts IEx Mix [Mix] Make protocol consolidation part of the `Mix.install/2` cache- Elixir 1.13.0 * Enhancements EEx [EEx] Add `:parser_options` to EEx functions Elixir [Calendar] Add `c:Calendar.year_of_era/3` to support calendars where the beginning of a new era does not align with the beginning of a new year [CLI] Support `--short-version` on the CLI that does not boot the VM [Code] Add `Code.string_to_quoted_with_comments/2` and `Code.quoted_to_algebra/2` [Code] Add more `:token_metadata` to aliases and remote calls when parsing strings [Code] Add `Code.Fragment` module to provide best-effort information from code fragments. The module currently provides an updated `Code.Fragment.cursor_context/2` with operator support and `Code.Fragment.surround_context/2` which looks at a given position in a fragment and find its surrounding delimiters [Code] Allow custom sigil formatting on `Code.format_string!/2` [Code] Add `{:on_module, bytecode, :none}` trace to compilation tracers [Enum] Optimize `Enum.concat/1` for lists of lists [Enum] Add `Enum.slide/3` [Exception] Better format Elixir exceptions in Erlang [Inspect] Allow default inspect fun to be set globally with `Inspect.Opts.default_inspect_fun/1` [IO] Allow `:eof` to be given as limit to `IO.getn/2` [Kernel] Support the `:sigils` option in `import Mod, only: :sigils` and allow the sigil modifiers to be also digits [Kernel] Make `get_in` consistently abort and return `nil` when `nil` values are found (previously Elixir would raise an error in this case). This allows a user to use `get_in` as a safe navigation operator. [Kernel] Improve compilation times by reducing the amount of copies of the AST across compiler processes [Kernel] Raise if trying to define a module with a slash in its name [Kernel] Warn when `?\` is used and there is no need for a escape character [Kernel] Track structs in typespecs as export deps instead of compile-time deps [Kernel] Add power operator (`**/2`) [Keyword] Add `Keyword.validate/2` [Keyword] Implement `Keyword.filter/2` and `Keyword.map/2` [List] Add `List.keyfind!/3` [Macro] Add `Macro.prewalker/1` and `Macro.postwalker/1` [Macro.Env] Add the following reflection functions: `required?/2`, `lookup_import/2`, `fetch_alias/2`, and `fetch_macro_alias/2` [Map] Implement `Map.filter/2` and `Map.map/2` [Module] Support `:nillify_clauses` in `Module.get_definition/3` [Module] Add `Module.attributes_in/1` and `Module.overridables_in/1` [OptionParser] Add "did you mean?" suggestions to `OptionParser.ParseError` messages [Record] Add record reflection via `@__records__` [Task] Add `Task.completed/1` [Task] Add `Task.ignore/1` to keep a task running but ignoring all of its results [Task] Reduce the amount of copying `Task.async*` functions [URI] Add `URI.new/1` and `URI.new!/1` ExUnit [ExUnit] Show hint if comparing different but equivalent strings [ExUnit.CaptureIO] Add `with_io/3` to return result with captured io [ExUnit.CaptureLog] Add `with_log/2` to return result with captured logs IEx [IEx.Autocomplete] Add path autocompletion whenever when the cursor follows `"./` or `"/` or `"DRIVER:` where `DRIVER` is a single letter [IEx.Autocomplete] Add autocompletion for sigils, struct names, and struct fields [IEx.Helpers] Allow multiple modules to be given to `r/1` Logger [Logger] Add `Logger.put_application_level/2` [Logger] Print all log levels in accordance to Erlang/OTP. This also means `[warn]` is now shown as `[warning]` Mix [Mix] Add `MIX_INSTALL_FORCE` environment variable support [Mix] Support `:config` and `:system_env` in `Mix.install/2` [Mix] Add `Mix.installed?/0` [Mix.Shell] Add `:default` option to `Mix.Shell.yes?` [mix archive.install] Run `loadconfig` before building archive [mix compile] Move Elixir version check to before deps are compiled, in order to give feedback earlier [mix compile.elixir] Do not recompile files if their modification time change but their contents are still the same and the .beam files are still on disk [mix compile.elixir] Do not recompile all Elixir sources when Erlang modules change, only dependent ones [mix compile.elixir] Do not recompile Elixir files if `mix.exs` changes, instead recompile only files using `Mix.Project` or trigger a recompilation if a compiler option changes [mix compile.elixir] Only recompile needed files when a dependency is added, updated or removed [mix compile.elixir] Only recompile needed files when a dependency is configured [mix deps] Add `:subdir` option to git deps [mix escript.install] Run `loadconfig` before building escript [mix format] Support `:plugins` in `mix format` that can hook into custom extensions and sigils [mix format] Add `Mix.Tasks.Format.formatter_for_file/2` [mix local.rebar] No longer support `sub_dirs` in Rebar 2 to help migration towards Rebar 3 [mix local.rebar] Support `--if-missing` option when installing Rebar [mix local.rebar] Set `REBAR_PROFILE=prod` when compiling Rebar dependencies [mix test] Support `--profile-require=time` to profile the time loading test files themselves [mix test] Allow filtering modules from coverage using regex [mix test] Allow the exit status of ExUnit to be configured and set the default to 2 [mix test] Exit with a status of 3 when coverage falls below threshold [mix test] Write failed manifest when suite fails due to --warnings-as-errors [mix test] Ignore `MIX_TEST_PARTITION` when partitions set to 1 [mix xref] Support multiple sinks and sources in `mix xref graph` [mix xref] Add `trace` subcommand to print compilation dependencies between files [mix xref] Add `--fail-above` option to `mix xref` [mix xref] Add `--label compile-connected` to `mix xref` * 2. Bug fixes EEx [EEx] Accept comments in EEx between do and the first clause [EEx] Accept EEx expressions where `->` is followed by newline Elixir [Application] Allow any expression as first argument of `compile_env` [Application] Warn if `Application.compile_env` or `Application.compile_env!` are called without a require [Code] Make sure `:static_atoms_encoder` in `Code.string_to_quoted/2` also applies to quoted keyword keys [Code] Ensure bindings with no context are returned as atoms instead of `{binding, nil}` in eval operations [Inspect] Fix a bug when inspecting a non-binary bitstring with colors [Kernel] Reject bidirectional formatting characters in strings and comments [Kernel] Support escaping of terminators in uppercase sigils heredocs for consistency [Kernel] Raise if `__CALLER__` or `__ENV__` or `__STACKTRACE__` are used in match [Kernel] Improve error message on invalid argument for `byte_size` from binary concat [Kernel] Raise when aliasing non-Elixir modules without `:as` [Kernel] Allow `unquote_splicing` inside `%{...}` without parens [Kernel] Ensure that waiting on a struct expansion inside a typespec is correctly tracked as waiting time in the compiler [Kernel] Correctly parse the atom `.` as a keyword list key [Kernel] Do not leak variables from the first generator in `with` and `for` special forms [Kernel] Fix column number on strings with NFD characters [Kernel] Fix a bug where a combination of dynamic line in `quote` with `unquote` of remote calls would emit invalid AST metadata [OptionParser] Validate switch types/modifiers early on to give more precise feedback [Protocol] Add `defdelegate` to the list of unallowed macros inside protocols as protocols do not allow function definitions [Protocol] Warn if `@callback`, `@macrocallback` and `@optional_callbacks` are defined inside protocol [Protocol] Ensure protocol metadata is deterministic on consolidation [Range] Always show step when range is descending [String] Update Unicode database to version 14.0 [URI] Only percent decode if followed by hex digits (according to https://url.spec.whatwg.org/#percent-decode) [Version] Ensure proper precedence of `and`/`or` in version requirements ExUnit [ExUnit] Fix formatter and counters from `ExUnit.run/0` to consider all tests in a module whenever if a module's `setup_all` fails [ExUnit] Allow doctests newlines to be terminated by CRLF IEx [IEx] Fix the loss of `.iex.exs` context after a pry session [IEx] Stop evaluator before exiting IEx server to avoid evaluators leaking Logger [Logger] Raise clear error message for invalid `:compile_time_purge_matching` configuration [Logger] Fix a bug where Logger would not reset its discard counter under some scenarios Mix [mix compile.elixir] Track transitive runtime dependencies coming from local/path dependencies [mix compile.elixir] Recompile file if `@external_resource` is deleted [mix compile.elixir] Print number of compiling files on all compiler cycles. This will make the `Compiling N files (.ex)` show up multiple times if necessary [mix deps] Raise if local dep is unavailable while compiling [mix deps.unlock] Fix blank output when unlocking a dependency that is not locked [mix local.install] Do not respect `MIX_DEPS_PATH` for install commands [mix release] Improve release scripts by making sure shell errors cascade (this is done by avoiding exporting and defining variables in a single step) [mix release] Do not boot release if `RELEASE_COOKIE` is empty [mix release] Allow releases running as a daemon to be restarted [mix release] Raise proper error message when non-serializable values are in configs [mix test] Fix coverage engine to also tag `case`, `cond`, and `receive` branches where the right side is a literal * 3. Soft-deprecations (no warnings emitted) Elixir [Code] Environment options in `Code.eval_quoted/3` and `Code.eval_string/3`, such as `:aliases` and `:tracers`, have been deprecated in favor of passing an environment [IO] `:all` on `IO.getn` is deprecated in favor of `:eof` [URI] `URI.parse/1` is deprecated in favor of `URI.new/1` and `URI.new!/1` Mix [mix format] `Mix.Tasks.Format.formatter_opts_for_file/2` is deprecated in favor of `Mix.Tasks.Format.formatter_for_file/2` * 4. Hard-deprecations Elixir [Code] `Code.cursor_context/2` is deprecated, use `Code.Fragment.cursor_context/2` instead [Macro] `Macro.to_string/2` is deprecated, use `Macro.to_string/1` instead [System] `System.get_pid/0` is deprecated, use `System.pid/0` instead [Version] Using `!` or `!=` in version requirements is deprecated, use `~>` or `>=` instead Mix [mix escript.build] `:strip_beam` option is deprecated in favor of `:strip_beams` [Mix] `:exit_code` in `Mix.raise/2` has been deprecated in favor of `:exit_status` [Mix.Config] `Mix.Config` is deprecated in favor of `Config` module Full release notes: https://github.com/elixir-lang/elixir/releases/tag/v1.13.0 - Drop 0001-Add-retries-to-tests-that-write-to-stderr-on-Windows.patch: upstreamed- Add 0001-Add-retries-to-tests-that-write-to-stderr-on-Windows.patch: fix build for Factory- Elixir 1.12.3 * Bug fixes Elixir [Code] Make sure that bindings in the default context returned by `Code.eval_*` functions are not returned as tagged tuples [Kernel] Do not crash when handling ambiguity errors [Range] Still match on old range patterns throughout the stdlib IEx [IEx.Autocomplete] Do not error autocompletion with module attribute Mix [Mix] Rename inconsistent `:exit_code` option to `:exit_status` on `Mix.raise/2`- Elixir 1.12.2 * Bug fixes Elixir [Kernel] Ensure deprecated macros emit warnings Mix [mix deps] Ensure unconstrained rebar deps generate valid mix specifications * Enhancements Elixir [elixirc] Change the output of `--profile time` to make it easier to detect outliers [Application] Do not add compile time deps on args to `Application.compile_env/2` and `Application.compile_env!/2` [Enum] Optimize `Enum.into/3` and `Map.new/2` Mix [mix compile] Compile most recently changed files first [mix compile, mix run, mix test] Speed up the time taken to load dependencies. This should make the usage of Mix inside projects quite more responsive- Elixir 1.12.1 * Bug fixes Elixir [Code] Make sure `Code.format_string!/2` formats multiline expression inside interpolation on the first run [Macro] Revert keeping of underscores between digits in camelize Mix [Mix] Make sure `Mix.install/2` expand paths for deps [mix deps.get] Silence false positives on `httpc` warnings [mix test] Do not run the whole suite when there are no --failed tests as it won't behave as expected inside umbrellas- Elixir 1.12 * Enhancements EEx [EEx.Engine] Add `c:EEx.Engine.handle_text/3` callback that receives text metadata [EEx.Engine] Emit warnings for unused "do" expression in EEx Elixir [Code] Add `Code.cursor_context/2` to return the context of a code snippet [Code] Do not add newlines around interpolation on code formatting. Note this means formatted code that has interpolation after the line length on Elixir v1.12 won't be considered as formatted on earlier Elixir versions [Code] Do not add brackets when keywords is used in the access syntax [Calendar] Support basic datetime format in `Calendar.ISO` parsing functions [Code] Improve evaluation performance on systems running on Erlang/OTP 24+ [Date] Support steps via `Date.range/3` [DateTime] Add `offset` to `DateTime.to_iso8601/2` (now `to_iso8601/3`) [Enum] Add `Enum.count_until/2` and `Enum.count_until/3` [Enum] Add `Enum.product/1` [Enum] Add `Enum.zip_with/2`, `Enum.zip_with/3`, `Enum.zip_reduce/3`, and `Enum.zip_reduce/4` [Enum] Add support for functions as the second argument of `Enum.with_index/2` [Exception] Show `error_info` data for exceptions coming from Erlang [Float] Add `Float.pow/2` [Integer] Add `Integer.pow/2` and `Integer.extended_gcd/2` [IO] Add `IO.stream/0` and `IO.binstream/0` which default to STDIO with line orientation [List] Add default value for `List.first/1` and `List.last/1` [Kernel] Add `first..last//step` as support for stepped ranges [Kernel] Also warn for literal structs on `min/2` and `max/2` [Kernel] Add `Kernel.tap/2` and `Kernel.then/2` [Kernel] Do not add runtime dependencies to remotes in typespecs [Kernel] When there is an unused variable warning and there is a variable with the same name previously defined, suggest the user may have wanted to use the pin operator [Kernel] Improve error messages on invalid character right after a number [Kernel] Show removal and deprecated tips from Erlang/OTP [Macro] Add export dependencies on `Macro.struct!/2` [Macro] Support `:newline` to customize newlines escaping in `Macro.unescape_string/2` [Module] Raise on invalid `@dialyzer` attributes [Module] Add `Module.get_definition/2` and `Module.delete_definition/2` [Module] Allow `@on_load` to be a private function [Module] Validate `@dialyzer` related module attributes [Module] Add `Module.reserved_attributes/0` to list all reserved attributes by the language [Range] Add `Range.new/3` and `Range.size/1` [Regex] Add offset option to `Regex.scan/3` and `Regex.run/3` [Registry] Support `:compression` on `Registry` tables [Registry] Support `Registry.values/3` for reading values under a given key-pid pair [Stream] Add `Stream.zip_with/2` and `Stream.zip_with/3` [String] Add `:turkic` mode option to String case functions [String] Update to Unicode 13.0 [System] Add `System.trap_signal/3` and `System.untrap_signal/2` [System] Add `System.shell/2` to invoke a command that is interpreted by the shell [Tuple] Add `Tuple.sum/1` and `Tuple.product/1` [URI] Support RFC3986 compliant encoding and decoding of queries via the `:rfc3986` option ExUnit [ExUnit] Intercept SIGQUIT (via Ctrl+\\) and show a list of all aborted tests as well as intermediate test results [ExUnit] Interpolate module attributes in match assertions diffs [ExUnit] Print how much time is spent on `async` vs `sync` tests [ExUnit] Improve error messages for doctests [ExUnit] Compile doctests faster (often by two times) [ExUnit] Add `ExUnit.async_run/0` and `ExUnit.await_run/1` IEx [IEx] Make IEx' parser configurable to allow special commands [IEx] Show function signature when pressing tab after the opening parens of a function [IEx] If an IEx expression starts with a binary operator, such as `|>`, automatically pipe in the result of the last expression Mix [Mix] Add `Mix.install/2` for dynamically installing a list of dependencies [Mix] Support `:exit_code` option in `Mix.raise/2` [Mix] Discard `MIX_ENV` and `MIX_TARGET` values if they are empty strings [Mix] Print the time taken to execute a task with on `MIX_DEBUG=1` [mix compile.erlang] Compile multiple files in parallel [mix escript.build] Deep merge configuration and ensure argv is set when executing `config/runtime.exs` [mix release] Add `RELEASE_PROG` to releases with the name of the executable starting the release [mix release] Support `remote.vm.args` to customize how the connecting VM boots [mix test] Run all available tests if there are no pending `--failed` tests. This provides a better workflow as you no longer need to toggle the `--failed` flag between runs * Bug fixes Elixir [CLI] Ensure `-e ""` (with an empty string) parses correctly on Windows [Inspect] Do not override user supplied `:limit` option for derived implementations [Kernel] Allow heredoc inside a heredoc interpolation [Kernel] Preserve CRLF on heredocs [Kernel] Public functions without documentation now appear as an empty map on `Code.fetch_docs/1`, unless they start with underscore, where they remain as `:none`. This aligns Elixir's implementation with EEP48 [Kernel] Do not crash when complex literals (binaries and maps) are used in guards [Kernel] Properly parse keywords (such as `end`) followed by the `::` operator [Kernel] Do not ignore unimplemented signatures from generated functions [Kernel] Improve error message when an expression follows a keyword list without brackets [Macro] `Macro.decompose_call/1` now also consider tuples with more than 2 elements to not be valid calls [Macro] Fix `Macro.to_string/1` double-escaping of escape characters in sigils [Macro] Fix `Macro.underscore/1` on digits preceded by capitals: "FOO10" now becomes "foo10" instead of "fo_o10" [Macro] Preserve underscores between digits on `Macro.underscore/1` [OptionParser] Properly parse when numbers follow-up aliases, for example, `-ab3` is now parsed as `-a -b 3` [Path] Fix `Path.relative_to/2` when referencing self [Path] Do not crash when a volume is given to `Path.absname/1`, such as "c:" [Task] Ensure `Task.async_stream/2` with `ordered: false` discard results as they are emitted, instead of needlessly accumulating inside the stream manager [Task] Raise if `:max_concurrency` is set to 0 on streaming operations [URI] Do not discard empty paths on `URI.merge/2` ExUnit [ExUnit.Case] Make `@tag tmp_dir` an absolute directory, avoiding inconsistencies if the test changes the current working directory [ExUnit.Diff] Fix cases where the diffing algorithm would fail to print a pattern correct IEx [IEx] Fix auto-completion inside remote shells Mix [mix app.config] Do not emit false positive warnings when configured dependencies that have `runtime: false` set [mix compile.elixir] Ensure that a manifest is generated even with no source code [mix compile.elixir] Make sure export dependencies trigger recompilation when the dependency is removed as well as when the whole file is removed [mix compile.elixir] Do not emit false positive warnings when a path dependency adds a module that is then used by the current application in the same `mix compile` cycle [mix test] Ensure protocols within the current project are consolidated when `--cover` is given [mix release] Improve compliance of release scripts with stripped down Linux installations [mix release] Preserve file mode when copying non-beam ebin files [mix xref] Ensure args are passed to the underlying `mix compile` call * Soft-deprecations (no warnings emitted) Elixir [Kernel] Using `first..last` to match on ranges is soft-deprecated and will warn on future Elixir versions. Use `first..last//step` instead [Kernel] Using `first..last` to create decreasing ranges is soft-deprecated and will warn on future versions. Use `first..last//-1` instead * Hard-deprecations EEx [EEx.Engine] `use EEx.Engine` is deprecated in favor of explicit delegation Elixir [Kernel] The binary operator `^^^` is deprecated. If you are using `Bitwise.^^^/2`, use `Bitwise.bxor/2` instead [Kernel] Deprecate `@foo()` in favor of `@foo` [System] Deprecate `System.stacktrace/0` (it was already deprecated outside of catch/rescue and now it is deprecated everywhere) Mix [mix compile] The `:xref` compiler is deprecated and it has no effect. Please remove it from your mix.exs file. Full release notes: https://github.com/elixir-lang/elixir/releases/tag/v1.12.0- Elixir 1.11.4 * Enhancements Elixir [Kernel] Update formatting when printing warnings and errors from Erlang/OTP 24+ [Kernel] Support float-16 on bitstrings Mix [mix local.rebar] This task will now install rebar3 version 3.14.4, compiled with Erlang/OTP 21- Elixir 1.11.3 * Enhancements Elixir [Macro] Add Macro.unique_var/2 and Macro.generate_unique_arguments/2 * Bug fixes Elixir [Code] Do not raise when checking for operator ambiguity when :static_atoms_encoder is set in Code.string_to_quoted [Kernel] Emit undefined function warnings from with [Kernel] Do not fail type checking when literals are used in guards [Module] Do not warn for attributes used in @after_compile [Record] Make sure nested record names do not clobber each other ExUnit [ExUnit.Assertions] Do not crash if there are macros and module attributes on the left side of ++ IEx [IEx.Helpers] Do not use Unicode chars if ANSI is disabled Mix [mix deps.compile] Fix compatibility with rebar v3.14 [mix release] Do not use private ram_file:compress/1 [mix xref] Do not crash when retrieving calls for modules in memory- Elixir 1.11.2 * Bug fixes Elixir [Code] Do not crash when getting docs for missing `erts` appdir [Kernel] Raise meaningful error if `:erlang.is_record` is used in guards [Kernel] Prune tracers when fetching `__ENV__` inside functions Mix [mix] Fix regression where aliases could not call themselves recursively [mix compile] Do not discard tracers that are set programatically- Elixir 1.11.1 * Bug fixes Elixir [Code] Ignore tracers if lexical tracker is dead or explicitly nil when evaling code with an environment [GenServer] Do not show warning when using `super` in `GenServer.child_spec/1` [Kernel] Do not crash when :reduce is set to `nil` in comprehensions [Kernel] Fix a scenario where undefined function warnings were not being emitted IEx [IEx.Helpers] Properly handle tags inside typespec when showing Erlang docs Logger [Logger] Do not deadlock Logger if handler crashes on sync mode Mix [Mix] Add inet6 fallback to Mix usage of httpc [mix compile.app] Do not list apps that do not match the current target- Elixir 1.11.0 * Enhancements EEx [EEx] Track column information in EEx templates when enabled in the compiler [EEx] Show column information in EEx error messages [EEx] Support `:indentation` option when compiling EEx templates for proper column tracking Elixir [Access] Add `Access.at!/1` [Calendar] Add `Calendar.strftime/3` for datetime formatting [Calendar] Add linear integer representations to Calendar modules: `Date.from_gregorian_days/2`, `Date.to_gregorian_days/1`, `NaiveDateTime.from_gregorian_seconds/3`, `NaiveDateTime.to_gregorian_seconds/1`,`Time.from_seconds_after_midnight/1` and `Time.to_seconds_after_midnight/1` [Calendar] Add `new!` to Date/Time/NaiveDateTime/DateTime (`new` has also been added to `DateTime` for completeness) [Calendar] Support custom starting day of the week in `Date.day_of_week/2` [Calendar] Add `Date.beginning_of_month/1` and `Date.end_of_month/1` [Calendar] Add `Date.beginning_of_week/2` and `Date.end_of_week/2` [Code] Add `:column` to `Code.string_to_quoted*/2` [Code] Add `Code.can_await_module_compilation?/0` to check if the parallel compiler is enabled and it can await for other modules to be compiled [Config] Support `config_env/0` and `config_target/0` in `config` files [Config] Allow `import_config` to be disabled for some configuration files [Enum] Allow a sorting function on `Enum.min_max_by/3,4`, including the new `compare/2` conventions [Kernel] Add `is_struct/2` guard [Kernel] Add `is_exception/1` and `is_exception/2` guards [Kernel] Support `map.field` syntax in guards [Kernel] Add `+++` and `---` with right associativity to the list of custom operators [Kernel] Warn if a variable that looks like a compiler variable (such as `__MODULE__`) is unused [Kernel.ParallelCompiler] Report individual file compilation times when `profile: :time` is given [Kernel.ParallelCompiler] Improve precision of `:long_compilation_threshold` so it takes only compilation times into account (and not waiting times) [Registry] Add `Registry.delete_meta/2` [Task] Add `Task.await_many/2` ExUnit [ExUnit] Add support for coloring on Windows 10 consoles/shells [ExUnit] Add `ExUnit.fetch_test_supervisor/0` [ExUnit] Add `@tag :tmp_dir` support to ExUnit. The temporary directory is automatically created and pruned before each test [ExUnit] Add file and line to ExUnit's `--trace` [ExUnit.Assertion] Allow receive timeouts to be computed at runtime [ExUnit.Case] Add `register_test/6` to speed up compilation of custom tests [ExUnit.Doctest] Allow users to add tags to doctests IEx [IEx] Add support for coloring on Windows 10 consoles/shells [IEx.Helpers] Show docs from Erlang modules that have been compiled with the docs chunk Logger [Logger] Add `notice`, `critical`, `alert`, and `emergency` log levels [Logger] Support structured logging by logging maps or keyword lists [Logger] Allow level to be set per module with `Logger.put_module_level/2` [Logger] Include `erl_level` in Logger's metadata Mix [mix] Add `MIX_BUILD_ROOT` to config `_build` dir [mix] Introduce `MIX_XDG` as a simpler mechanism to opt-in to the XDG specification [mix] Allow requirements for a Mix task to be listed via the `@requirements` module attribute [mix] Allow optional dependencies to be defined in `:extra_applications` and `:applications` [mix app.config] Add new `mix app.config` task that compiles applications and loads runtime configuration [mix archive.install] Support `--repo` option on Hex packages [mix compile] Support the `__mix_recompile__?/0` callback for custom behaviour on when Mix should recompile a given module [mix compile.elixir] Mark modules for path dependencies as "Export dependencies" if they changed but their public interface is the same [mix compile.elixir] Track application boundaries in the Elixir compiler. If you invoke code from Erlang or Elixir standard libraries and you don't depend on the proper applications, a warning will be emitted. A warning will also be emitted if you invoke code from an umbrella sibling that you don't depend on - effectively forbidding cyclic dependencies between apps [mix deps] Sort the dependencies alphabetically before printing [mix deps] Use `origin/HEAD` as the default Git ref in dependencies [mix deps] Redact Git `username`/`password` in output log [mix deps] Support rebar3's `git_subdir` resource type [mix deps.compile] Allow local deps to be skipped on `mix deps.compile` {mix deps.unlock] Print which dependencies get unlocked when using the `--unused` flag [mix escript.install] Support `--repo` option on Hex packages [mix new] Add `@impl` to application generated by `mix new --sup` [mix release] Enable overriding `sys.config` location via `RELEASE_SYS_CONFIG` env var [mix release] Boot a release under configuration in interactive mode and then swap to embedded mode (if running on Erlang/OTP 23+) [mix release] Add `rel_templates_path` to configure the source of template files such as "env.sh.eex", "vm.args.eex" and "overlays" [mix release] Allow some chunks to be kept in the `:strip_beams` config [mix test] Allow `:ignore_modules` inside `:test_coverage` option [mix test.coverage] Add `mix test.coverage` that aggregates coverage results from umbrellas and OS partitioning [mix xref] Make the `--label` option for `mix xref graph` transitive by default and add `--only-direct` for only direct dependencies [mix xref] Add `--format cycles` support for `mix xref graph` [mix xref] Add support to `mix xref graph` for using `--source` and `--sink` at the same time * Bug fixes EEx [EEx] Make trimming behaviour via the `:trim` option more consistent Elixir [Application] Warn if non-atom keys are given to `put_env`, `get_env`, `fetch_env`, and `delete_env` [Code] Do not send language keyword through the `:static_atoms_encoder` in `Code.string_to_quoted` [Kernel] Validate values given to `:line` in quote to avoid emitting invalid ASTs [Kernel] Report the correct line number when raising inside a macro [Kernel] Fix an issue where `elixirc` would not accept paths with backslash (`\`) separators on Windows [Kernel] Properly parse `&//2` (i.e. the capture of the division operator) [Kernel] Raise `CompileError` when trying to define reserved types [Kernel] Improve compiler error message when using `|` in a `def` signature [Kernel] Improve error message when trying to use invalid list operators in guards [Kernel.SpecialForms] Add `|/2` to the list of special forms to avoid inconsistent behaviour on overrides [Keyword] Enforce keys to be atoms in `Keyword.keys/1` [Record] Keep lexical ordering when creating records [Registry] Do not crash when a process with key-value has been registered using `:via` and it fails to start on `init` [URI] `URI.decode_query/2` emits an empty string for parameters without values, according to [URL's living standard](https://url.spec.whatwg.org/#application/x-www-form-urlencoded) - note this behaviour i s not specified in the spec implemented by the URI module, so the living standard was chosen [Version] Add defaults and enforce keys in `Version` struct ExUnit [ExUnit.CaptureIO] Fix race condition where a dead capture would still be considered as active [ExUnit.Diff] Do not crash when failing to eval/inspect struct [ExUnit.Diff] Properly diff numbers in respect to `==` and `===` operators IEx [IEx] Fix tokenizer emitting repeated warnings in the REPL [IEx] Ensure `--dot-iex` is preserved when restarting the evaluator and after shell respawn [IEx.Pry] Ensure `IEx.pry` can be triggered more than twice when invoked from the same process Mix [mix cmd] Fix a bug where only the first --app option would be executed [mix compile] Fix an issue where new protocol implementations would not propagate when running `mix compile` from an umbrella root [mix deps.compile] Use `gmake` instead of `make` when compiling deps on NetBSD/DragonFlyBSD [mix release] Load `.app` from dependencies path when it is a project dependency [mix release] Always include "rel/overlays" in the list of overlays directories if available [mix release] Change `erts/bin/erl` binary mode to `0o755` [mix test] Compare to test coverage threshold inclusively Logger [Logger] Print metadata for all types that implement String.Chars * Soft-deprecations (no warnings emitted) Elixir [Exception] `Exception.exception?/1` is deprecated in favor of `Kernel.is_exception/1` [Regex] `Regex.regex?/1` is deprecated in favor of `Kernel.is_struct/2` Logger [Logger] `warn` log level is deprecated in favor of `warning` Mix [mix release] `config/releases.exs` is deprecated in favor of a more general purpose `config/runtime.exs` * Hard-deprecations Elixir [Supervisor] Deprecate `Supervisor.start_child/2` and `Supervisor.terminate_child/2` in favor of `DynamicSupervisor` [Supervisor.Spec] Deprecate `Supervisor.Spec.worker/3` and `Supervisor.Spec.supervisor/3` in favor of the new typespecs [System] Deprecate `System.stacktrace/0` in favor of `__STACKTRACE__` Mix [Mix.Project] Deprecate `Mix.Project.compile/2` in favor of `Mix.Task.run("compile", args)` Full release notes: https://github.com/elixir-lang/elixir/releases/tag/v1.11.0- Elixir 1.10.4 * Bug fixes Elixir [Kernel] Fix a bug where custom types were printed as built-in types [Kernel] Don't add compile-time dependency on defdelegate [Kernel] Add line numbers to warnings on deprecated imports [Kernel] Report the correct line number when raising inside a macro [Task] Include callers in translated Logger metadata for Task [Task] Fix Task PID and caller in Task Supervisor reports ExUnit [ExUnit.Formatter] Avoid crashes when diffing guards when the pattern does not match [ExUnit.Formatter] Also blame exceptions that come from linked and trapped exits IEx [IEx.Helpers] Do not crash when printing a type that cannot be code formatted Mix [mix app.start] Fix reading .app file located in archives (.ez files) [mix local.hex] Provide more guidance when Hex can't be installed [mix release] Properly encode config in releases- Elixir 1.10.3 * Bug fixes Elixir [Code] Return `[{mod, bin}]` from `Code.compile_file/2`, `Code.require_file/2`, `Code.load_file/2` [Code] Make sure the formatter respects newlines before and after module attributes [Kernel.ParallelCompiler] Fix a bug where the parallel compiler would raise in long compilation cycles [Kernel.ParallelCompiler] Fix a bug where the parallel compiler would raise if some of the modules being compiled referred to a module that has been loaded directly to memory [Module] Fix accidental breaking change where bodiless clauses had their body value on `@on_definition` callbacks set to an empty list instead of `nil` [String] Undeprecate `String.normalize/2` normalize and fix infinite loop caused by certain invalid strings ExUnit [ExUnit.Assertions] Fix pattern matching diff when matching on pinned variables [ExUnit.Assertions] Fix pattern matching diff when matching variable struct names [ExUnit.Assertions] Fix pattern matching diff when matching on the binary concat operator (`<>`) and the left side is not a literal string [ExUnit.Assertions] Fix pattern matching diff when matching on pseudo-vars (`__MODULE__`, `__DIR__`, etc) Mix [mix release] Respect the `:path` option when creating a `:tar` file for releases- Elixir 1.10.2 * Bug fixes Elixir [Macro] Fix a bug where Macro.to_string/1 would emit invalid code for sigils [Task] Do not crash async_stream monitor if it receives spurious DOWN messages Logger [Logger] Fix a bug where the Logger formatter would fail when handling unknown metadata values Mix [mix compile] Do not write files to disk if --warnings-as-errors was given and warnings were emitted - Elixir 1.10.1 * Bug fixes Elixir [Code] Do not emit invalid code when formatting nil, false, and true keys in maps [Kernel] Ensure with clauses properly unpack "implicit guards" (such as matching on the struct name) [Kernel] Do not warn if commas are used by themselves in ~w/~W sigils [Kernel] Do not validate the :line option in quote (the validation has been moved to v1.11 to give users more time to update their code) [Module] Ensure the code verifier handles the :erlang.size/1 guard properly Logger [Logger] Properly handle the report_cb/2 option from Erlang [Logger] Fix truncation for multi-byte characters [Logger] Do not rebroadcast messages from remote nodes as this is now taken care by Erlang's logger ExUnit [ExUnit] Ensure assert_receive produces valid exception messages in case of errors Mix [mix release] Make sure the install command (Window specific) works on paths with spaces in the name [mix release] Allow using remote and rpc commands with Application.compile_env/3 - Elixir 1.10.0 * Elixir 1.10.0 is a new main release. Full release notes: https://github.com/elixir-lang/elixir/releases/tag/v1.10.0- Refresh elixir-1.9.4.tar.gz jsc#SLE-10913- Elixir 1.9.4 * Bug fixes Mix [mix local.hex] Remove invalid deprecation warning on mix local.hex command - Elixir 1.9.3 * Enhancements Mix [mix release] Add :tar option for releases to create a tarball * Bug fixes Mix [mix release] Use default_release option when name is not given [mix release] Make release's boot script contents deterministic * Deprecations Mix [mix archive.install] Warn when installing from URI [mix escript.install] Warn when installing from URI - Elixir 1.9.2 * Enhancements Mix [mix release] Allow {:from_app, app_name} as a version for releases * Bug fixes Elixir [Kernel] Ensure compilation works for a variable named super [Kernel] Ensure capture operator of a local function expands correctly inside a macro [Regex] Ensure dynamic recompilation of regexes considers options. This fixes an issue where parsing the protocol in URI.parse/1 seemingly looked case sensitive when running Elixir precompiled on another machine * Mix [mix release] Use Base.encode32 when generating cookie to avoid unsafe chars [mix release] Fix install command on Windows [mix release] Quote executable path on Windows to ensure it works on directories with spaces - Elixir 1.9.1 * Enhancements Mix [mix format] Print relative paths in --check-formatted output [mix release] Support included applications * Bug fixes Elixir [Code] Fix formatter wrongly removing nested parens in nested calls * Logger [Logger] Do not crash translator on poorly formatted supervisor names * Mix [mix compile] Raise readable error for mismatched sources during compilation [mix release] Preserve UTF8 encoding in release config files- Elixir 1.9.0 * Enhancements EEx [EEx] Allow more complex mixed expressions when tokenizing Elixir [Access] Allow Access.at/1 to handle negative index [CLI] Add support for --boot, --boot-var, --erl-config, --pipe-to, --rpc-eval, and --vm-args options [Code] Add static_atom_encoder option to Code.string_to_quoted/2 [Code] Support :force_do_end_blocks on Code.format_string!/2 and Code.format_file!/2 [Code] Do not raise on deadlocks on Code.ensure_compiled/1 [Config] Add Config, Config.Reader, and Config.Provider modules for working with configuration [File] Add File.rename!/2 [Inspect] Add :inspect_fun and :custom_options to Inspect.Opts [Kernel] Add ~U sigil for UTC date times [Kernel] Optimize &super/arity and &super(&1) [Kernel] Optimize generated code for with with a catch-all clause [Kernel] Validate __struct__ key in map returned by __struct__/0,1 [Module] Add Module.get_attribute/3 [Protocol] Improve Protocol.UndefinedError messages to also include the type that was attempted to dispatch on [Protocol] Optimize performance of dynamic dispatching for non-consolidated protocols [Record] Include field names in generated type for records [Regex] Automatically recompile regexes [Registry] Add Registry.select/2 [System] Add System.restart/0, System.pid/0 and System.no_halt/1 [System] Add System.get_env/2, System.fetch_env/1, and System.fetch_env!/1 [System] Support SOURCE_DATE_EPOCH for reproducible builds ExUnit [ExUnit] Allow multiple :exclude on configuration/CLI [ExUnit.DocTest] No longer wrap doctest errors in custom exceptions. They ended-up hiding more information than shing [ExUnit.DocTest] Display the actual doctest code when doctest fails IEx [IEx.CLI] Copy ticktime from remote node on IEx --remsh [IEx.CLI] Automatically add a host on node given to --remsh Logger [Logger] Use a decentralized mode computation for Logger which allows overloads to be detected more quickly [Logger] Use persistent_term to store configuration whenever available for performance Mix [Mix] Follow XDG base dir specification in Mix for temporary and configuration files [Mix.Generator] Add copy_file/3, copy_template/4, and overwite?/2 [Mix.Project] Add preferred_cli_target that works like preferred_cli_env [mix archive.uninstall] Allow mix archive.uninstall APP to uninstall any installed version of APP [mix new] No longer generate a config/ directory for mix new [mix release] Add support for releases [mix release.init] Add templates for release configuration [mix test] Allow running tests for a given umbrella app from the umbrella root with mix test apps/APP/test. failures also include the apps/APP prefix in the test location * Bug fixes EEx [EEx] Consistently trim newlines when you have a single EEx expression per line on multiple lines Elixir [Code] Quote :: in Code.format_string!/1 to avoid ambiguity [Code] Do not crash formatter on false positive sigils [Enum] Ensure the first equal entry is returned by Enum.min/2 and Enum.max/2 [Kernel] Improve error message when string interpolation is used in a guard [Kernel] Properly merge and handle docs for callbacks with multiple clauses [Kernel] Guarantee reproducible builds on modules with dozens of specs [Kernel] Resolve __MODULE__ accordingly in nested defmodule to avoid double nesting [Kernel] Type variables starting with an underscore (_foo) should not raise compile error [Kernel] Keep order of elements when macro in/2 is expanded with a literal list on the right-hand side [Kernel] Print proper location on undefined function error from dynamically generated functions [System] Make sure :init.get_status/0 is set to {:started, :started} once the system starts [Path] Do not expand ~ in Path.expand/2 when not followed by a path separator [Protocol] Ensure debug_info is kept in protocols [Regex] Ensure inspect returns valid ~r// expressions when they are manually compiled with backslashes [Registry] Fix ETS leak in Registry.register/2 for already registered calls in unique registries while the procesis still alive ExUnit [ExUnit] Raise error if attempting to run single line tests on multiple files [ExUnit] Return proper error on duplicate child IDs on start_supervised IEx [IEx] Automatically shut down IEx if we receive EOF Logger [Logger] Don't discard Logger messages from other nodes as to leave a trail on both systems Mix [mix compile] Ensure Erlang-based Mix compilers (erlang, leex, yecc) set valid position on diagnostics [mix compile] Ensure compilation halts in an umbrella project if one of the siblings fail to compile [mix deps] Raise an error if the umbrella app's dir name and mix.exs app name don't match [mix deps.compile] Fix subcommand splitting bug in rebar3 [mix test] Do not consider modules that are no longer cover compiled when computing coverage report, which couldlead to flawed reports * Soft-deprecations (no warnings emitted) Mix [Mix.Config] Mix.Config has been deprecated in favor of the Config module that now ships as part of Elixir itself.Reading configuration files should now be done by the Config.Reader module * Hard-deprecations Elixir [CLI] Deprecate --detached option, use --erl "-detached" instead [Map] Deprecate Enumerable keys in Map.drop/2, Map.split/2, and Map.take/2 [String] The :insert_replaced option in String.replace/4 has been deprecated. Instead you may pass a function as a replacement or use :binary.replace/4 if you need to support earlier Elixir versions Mix [Mix.Project] Deprecate Mix.Project.load_paths/1 in favor of Mix.Project.compile_path/1 * Full release notes: https://github.com/elixir-lang/elixir/releases/tag/v1.9.0- Elixir 1.8.2 * Bug fixes [EEx] Raise readable error message on bad EEx state Elixir [Protocol] Ensure :debug_info is kept in protocols Logger [Logger] Make sure Logger v1.8 does not get stuck in discard mode [Logger.Translator] Translate remote process crash in Logger- Add requires Erlang >= 20- Elixir 1.8.1 * Bug fixes Elixir [Float] Fix rounding for subnormal floats IEx [IEx] Fix IEx.pry crash when IEx isn't running [IEx.CLI] Add IEx warning when using --remsh with "dumb" terminal [IEx.Helpers] Sort results by arity on h helper Mix [mix compile] Do not include optional dependencies in extra applications as it is incompatible with shared deps in umbrellas- Elixir 1.8.0 * Elixir v1.8 comes with many improvements at the infrastructure level, improving compilation time, speeding up common patterns, and adding features around introspection of the system. See full changelog at https://github.com/elixir-lang/elixir/releases/tag/v1.8.0 * Enhancements EEx [EEx] Optimize the default template engine to compile and execute more efficiently Elixir [Calendar] Add Calendar.TimeZoneDatabase and a Calendar.UTCOnlyTimeZoneDatabase implementation [Calendar] Add callbacks day_of_year/3, quarter_of_year/3, year_of_era/1, and day_of_era/3 [Code.Formatter] Preserve user's choice of new line after most operators [Date] Add Date.day_of_year/1, Date.quarter_of_year/1, Date.year_of_era/1, and Date.day_of_era/1 [DateTime] Add DateTime.from_naive/3, DateTime.now/1, and DateTime.shift_zone/3 [File] Allow :raw option in File.exists?/2, File.regular?/2, and File.dir?/2 [File] Allow POSIX time as an integer in File.touch/2 and File.touch!/2 [Inspect] Allow Inspect protocol to be derivable with the :only/:except options [Kernel] Do not propagate counters to variables in quote inside another quote [Kernel] Warn on ambiguous use of :: and | in typespecs [Kernel] Add :delegate_to @doc metadata tag when using defdelegate [Kernel] Improve compile-time building of ranges via the .. operator [Kernel] Compile charlist interpolation more efficiently [Kernel] Add floor/1 and ceil/1 guards [Kernel.SpecialForms] Add :reduce option to for comprehensions [List] Add List.myers_difference/3 and List.improper?/1 [Macro] Add Macro.struct!/2 for proper struct resolution during compile time [Map] Optimize and merge nested maps put and merge operations [Range] Add Range.disjoint?/2 [Record] Reduce memory allocation when updating multiple fields in a record [Registry] Allow associating a value on :via tuple [String] Add String.bag_distance/2 [Task] Add $callers tracking to Task - this makes it easier to find which process spawned a task and use it for tracking ownership and monitoring ExUnit [ExUnit] Add ExUnit.after_suite/1 callback [ExUnit.Assertions] Show last N messages (instead of first N) from mailbox on assert_receive fail IEx [IEx.Helpers] Add port/1 and port/2 [IEx.Server] Expose IEx.Server.run/1 for custom IEx sessions with the ability to broker pry sessions Mix [Mix] Add Mix.target/0 and Mix.target/1 to control dependency management per target [Mix.Project] Add :depth and :parents options to deps_paths/1 [mix archive.install] Add a timeout when installing archives [mix compile] Include optional dependencies in :extra_applications [mix escript.install] Add a timeout when installing escripts [mix format] Warn when the same file may be formatted by multiple .formatter.exs [mix test] Allow setting the maximum number of failures via --max-failures [mix test] Print a message instead of raising on unmatched tests inside umbrella projects * Bug fixes Elixir [Calendar] Allow printing dates with more than 9999 years [Exception] Exclude deprecated functions in "did you mean?" hints [Float] Handle subnormal floats in Float.ratio/1 [Kernel] Remove Guard test tuple_size(...) can never succeed Dialyzer warning on try [Kernel] Expand operands in size*unit bitstring modifier instead of expecting size and unit to be literal integers [Kernel] Do not deadlock on circular struct dependencies in typespecs [Kernel] Raise proper error message when passing flags to the Erlang compiler that Elixir cannot handle [Kernel] Do not leak variables in cond clauses with a single matching at compile-time clause [NaiveDateTime] Do not accept leap seconds in builder and parsing functions [String] Fix ZWJ handling in Unicode grapheme clusters [StringIO] Handle non-printable args in StringIO gracefully IEx [IEx.Helpers] Use typespec info (instead of docs chunk) and properly format callbacks in b/1 Logger [Logger] Allow Logger backends to be dynamically removed when an application is shutting down Mix [mix compile] Ensure changes in deps propagate to all umbrella children - this fix a long standing issue where updating a dependency would not recompile all projects accordingly, requiring a complete removal of _build [mix compile] Avoid time drift when checking and updating compiler manifest files [mix compile.app] Respect the :only option between umbrella siblings [mix compile.protocols] Reconsolidate protocols if local dependencies are stale [mix deps] Properly mark dependencies with different :system_env as diverged [mix new] Use --module value when setting up filenames- Use %{_rpmmacrodir} for macros.elixir- Set License to Apache-2.0. I have not found where did ErlPL come from.- Improvements to description grammar.- Use %license for LICENSE- Elixir 1.7.4 * Bug fixes [Calendar] Fix for converting from negative iso days on New Year in a leap year [Kernel] Ensure @spec, @callback, @type and friends can be read accordingly [Module] Avoid warnings when using Module.eval_quoted in the middle of existing definitions [mix archive.build] Unload previous archive versions before building [mix format] Expand paths so mix format path\for\windows.ex works [mix test] Ensure that --cover displays correct coverage in an umbrella app - Elixir 1.7.3 * Bug fixes [ExUnit.Assertions] Do not attempt to expand try/1 as it is a special form [mix compile.app] Do not include applications with runtime: false as a runtime dependency for applications coming from Hex [mix compile.app] Do not include applications with runtime: false as a runtime dependency for applications coming from Hex - Elixir 1.7.2 * Bug fixes [Kernel] Do not emit warnings for repeated docs over different clauses due to false positives [mix compile] Properly mark top-level dependencies as optional and as runtime. This fixes a bug where Mix attempted to start optional dependencies of a package when those optional dependencies were not available [mix compile] Avoid deadlock when a config has a timestamp later than current time [mix test] Do not fail suite if there are no test files - Elixir 1.7.1 * Bug fixes [Calendar] Work-around a Dialyzer bug that causes it to loop for a long time, potentially indefinitely - Elixir 1.7 Elixir v1.7 is the last release to support Erlang/OTP 19. We recommend everyone to migrate to Erlang/OTP 20+. Full release notes: https://github.com/elixir-lang/elixir/releases/tag/v1.7.0- Elixir 1.6.6 This release supports Erlang/OTP 21.0 by removing all warnings and by properly supporting the new Erlang logger module. * Bug fixes [Base] Do not raise when finding bad digits in Base.decode32! with `case: :mixed` [Code] Preserve the user's choice when fn is followed by a newline and it has only a single clause [DynamicSupervisor] Properly account for restarting children in the `:max_children` configuration [String] Add performant impl for string upcase/downcase :ascii mode [Task.Supervisor] Fix type spec for start_child/4 [Logger] Do not crash truncation when truncate is set to infinity [mix format] Match files starting with dot - Elixir 1.6.5 This release supports Erlang/OTP 21.0-rc by removing all warnings and by properly redirecting logger output. Note it is not guaranteed it will support Erlang/OTP 21.0 final. Bug fixes [Code] Preserve the user's choice in the formatter on parens call with next break fits [Code] Preserve the user's choice in the formatter on calls without parens when we have one argument per line [Code] Fix formatting when there is a tilde in the first element of a bitstring [Kernel] Support specsdiff flag on __info__ spec clauses [Kernel] Do not exclude hygienic vars in defguard [Kernel.SpecialForms] Mark for comprehensions as generated to avoid dialyzer warnings [Macro] Make sure Macro.to_string/2 emits valid quoted expressions [Task] Support :infinity timeout on Task.yield_many/2 [Task.Supervisor] Do not crash spawning supervised tasks when the parent process is dead [URI] Fix parsing of URIs with trailing ?- Elixir 1.6.4 * [Code.Formatter] Do not double escape quoted keyword list identifiers * [Kernel] Properly support into: binary in Erlang/OTP 20.3 - Elixir 1.6.3 * [Code.Formatter] Support comments in the middle of pipelines, `when` and `|` expressions * [Code.Formatter] Consider commas when breaking groups * [Code.Formatter] Ensure proper precedence between & and operators * [Code.Formatter] Consider .formatter.exs when formatting stdin * [Logger.Translator] Ensure logger doesn't crash when reporting named `DynamicSupervisor` - Elixir 1.6.2 See full changelog at https://github.com/elixir-lang/elixir/releases/tag/v1.6.2 - Elixir 1.6.1 See full changelog at https://github.com/elixir-lang/elixir/releases/tag/v1.6.1 - Elixir 1.6.0 See full changelog at https://github.com/elixir-lang/elixir/releases/tag/v1.6.0 - Elixir 1.5.3 See full changelog at https://github.com/elixir-lang/elixir/releases/tag/v1.5.3- updated to 1.5.2- Elixir 1.5.1 Release notes: https://github.com/elixir-lang/elixir/releases/tag/v1.5.1 - Elixir 1.5.0 Elixir v1.5 includes new features, enhancements, and bug fixes. While Elixir v1.4 focused on tools for concurrency and scalability, Elixir v1.5 brings many improvements to the developer experience and quality of life. As we will see, many of those are powered by the latest Erlang/OTP 20. This is also the last Elixir release that supports Erlang/OTP 18. Release notes: https://github.com/elixir-lang/elixir/releases/tag/v1.5.0- Elixir v1.4.5 This version includes changes that make Elixir fully compatible with Erlang/OTP 20. 1. Enhancements Logger [Logger] Handle changes to crash reports in OTP 20 2. Bug fixes Elixir [DateTime] Fix DateTime.from_iso8601/2 when offset has no colon [Registry] Do not leak EXIT messages on Registry.dispatch/3- Elixir v1.4.4 1. Bug fixes Elixir [Map] Fix regression on struct update syntax - Elixir v1.4.3 Note: This release had a regression that has been immediately fixed on version 1.4.4. This version includes changes that make Elixir fully compatible with Erlang OTP 20-rc.1. 1. Enhancements Elixir [Kernel] Improve compilation time for modules with many clauses [Map] Warn when attempting to override __struct__ key [Regex] Add recompile/1 and recompile!/1 to ease transition to OTP 20 for archives and stored regexes Logger [Logger.Translator] Handle OTP 20 GenServer log messages Mix [mix compile] Recompile projects if OTP version changes 2. Bug fixes Elixir [Kernel] Fix code generation when non-binary bitstrings are in AST [Record] Properly escape fields passed to defrecord ExUnit [ExUnit.Diff] Do not fail when comparing maps with nil or boolean keys IEx [IEx.Helpers] Do not log exits on IEx.Helpers.c/2 failures Mix [mix archive.install] Detect proper path on URLs with query strings [mix loadpaths] Do not assume all paths in loadpaths exist- Elixir v1.4.2 1. Bug fixes EEx [EEx] Support middle expressions on trim mode Elixir [Calendar] Correct typo on Calendar types [Kernel] Ensure redefined functions point to the proper source [OptionParser] Add `:allow_nonexistent_atoms` to support unsafe behaviour prior to v1.4 [Stream] Allow consuming multiple items from suspended enumerable in `Stream.transform/3` [String] Incorporate new grapheme rules in Unicode 9 IEx [IEx.Autocomplete] Do not crash on aliases which are not known at compile time Mix [Mix.Umbrella] Ensure umbrella projects can depend on other umbrella projects [Mix.Archive] Ensure previous archives with .ez extension are deleted - Elixir v1.4.1 1. Bug fixes Elixir [Kernel] Remove warning when making private functions overridable [Path] Ensure `Path.join/1` returns strings for lists of one element [Regex] Ensure `Regex.escape/1` also escapes `-` IEx [IEx] Disable ANSI detection for powershell to avoid false positives Mix [Mix.Make] Run `make clean` for `erlang.mk` [Mix.Rebar] Support all of rebar3 dependency package declaration [Mix.Rebar] Only pass overrides from parent to child in Rebar dep- update to v1.4.0 1. Enhancements Elixir [Calendar] Add Date.compare/2, Time.compare/2, NaiveDateTime.compare/2 and DateTime.compare/2 [Calendar] Support NaiveDateTime.add/3 and NaiveDateTime.diff/3 for adding seconds (up to microseconds) as well as the difference between two NaiveDateTimes in seconds (up to microseconds) [Calendar] Add Date.leap_year?/1 and Date.day_of_week/1 [Calendar] Ensure Date, Time and NaiveDateTime APIs work with any struct that provides the same set of fields as their respective struct. For example, a NaiveDateTime can be given to Date since it contains a superset of the fields in the Date struct [Enum] Add Enum.map_every/2 that invokes the given function with every nth item [Enum] Add min/2, max/2, min_max/2, min_by/3, max_by/3, and min_max_by/3 that allow a function specifying the default value when the enumerable is empty [Enum] Introduce Enum.zip/1 to zip multiple entries at once [Float] Introduce Float.ratio/1 that returns a tuple with the numerator and denominator as integers to retrieve the given float [GenServer] Log warn on default handle_info/2 implementation [Inspect] Support syntax coloring via the :syntax_color option [Integer] Integer.digits/2 now accepts negative integers [Integer] Add Integer.mod/2 and Integer.floor_div/2 [IO] Add :label option to IO.inspect/2 to help distinguish multiple IO.inspect/2 calls. [Kernel] Recognize merge conflict markers in source and provide a readable error message [Kernel] Warn on unused module attributes [Kernel] Improve compiler message on unexpected end of line [Kernel] Raise BadBooleanError when a non-boolean is given on the left-hand side of and/or [List] Add List.pop_at/3 [List] Add List.myers_difference/2 [OptionParser] Expand multi-letter aliases in OptionParser [Process] Add Process.send_after/4 [Process] Improve error messages on Process.register/2 errors [Registry] Add a local, decentralized and scalable key-value process storage [Stream] Add Stream.map_every/2 that invokes the given function with every nth item [Stream] Introduce Stream.zip/1 to lazily zip multiple entries at once [String] Update to Unicode 9.0.0 [Task] Add Task.async_stream/3 and Task.async_stream/5 as well as the supervised versions Task.Supervisor.async_stream/4 and Task.Supervisor.async_stream/6 [URI] Allow 0 as URI scheme default port ExUnit [ExUnit.Diff] Use red or green background for whitespace-only diffs [ExUnit.Doctest] Allow inspected structures with multiples lines and unicode characters in the doctest result [ExUnit.Formatter] Replace lhs/rhs with left/right in the formatter for clarity IEx [IEx.Autocomplete] Stop appending a trailing dot when autocompleting modules in IEx [IEx.Autocomplete] Support autocompletion for structs [IEx.Autocomplete] Improve IEx autocomplete to support navigating map atom keys [IEx.Helpers] c/1 now compiles in memory by default to avoid common issue where .beam files remain at projects root directory [IEx.Helpers] Add info about protocols in i/1 [IEx.Server] Support interrupting IEx evaluation through the Ctrl+G prompt Mix [mix archive] Compress archive files built by mix archive as they are now unzipped during installation [mix archive] Install from SCM [mix compile] Automatically infer the list of applications for Mix projects [mix cmd] Add the ability to specify one or more apps in mix cmd [mix deps] Warn if there are non-applications in the apps directory for umbrella projects [mix deps] Add warning for invalid paths on mix deps.clean [mix deps] Add Mix.Project.apps_paths that returns the paths to children applications in umbrella projects [mix deps] Add MIX_REBAR environment variable for overriding local rebar [mix escript] Install from SCM [mix new] Check directory existence in mix new and ask how to proceed if one exists [mix new] Applications built with the --sup flag now have an individual module to work as application callback [mix test] Add --formatter option to mix test [mix xref] Provide "did you mean?" suggestions for mix xref 2. Bug fixes Elixir [Access] Do not accept nils in Access.key/1 and Access.key/2 in favor of explicit default values (or Access.key!/1 if you expect the key to always be available) [Float] Avoid multiple roundings in Float.ceil/2, Float.floor/2 and Float.round/2 [Kernel] Don't crash in macro_exported?/3 when dealing with Erlang modules [Kernel] Ensure locals calls are rewritten when calling a local function or macro from inside a module [Kernel] Annotate the context for variables as zero-arity funs in quotes [Kernel.SpecialForms] Ensure comprehensions with guards and filters keep proper ordering, [Kernel.SpecialForms] Produce meaningful warning when with's else clauses have no effect [Macro] Wrap fn calls in parens in Macro.to_string/2 [Macro] Do not print aliases as keys inside keyword lists in Macro.to_string/2 [OptionParser] Support options in OptionParser.to_argv/2 to ensure :count switches are correctly encoded [Stream] Ensure Stream.take/2 does not consume next element on :suspend [String] Fix infinite recursion in String.replace_leading/3 and String.replace_trailing/3 when given an empty string [Task] Fix Task.shutdown/1,2 infinite block when task has no monitor [Task] Ensure task cannot link after parents unlinks ExUnit [ExUnit] Fix a race condition in assert_receive where we would assert a message was not received but show it in the list of messages when the message is delivered right after the timeout value IEx [IEx.Helpers] Purge consolidated protocols before and after recompile/0 Mix [Mix.Dep] Use gmake on FreeBSD instead of make when compiling make dependencies [Mix.Project] Only copy files from source when they're newer than destination (for Windows machines) [Mix.Task] Ensure non-recursive tasks inside umbrella are reenabled 3. Soft deprecations (no warnings emitted) Elixir [Enum] Enum.partition/2 has been deprecated in favor of Enum.split_with/2 [System] Deprecate plural time units in favor of singular ones to align with future Erlang releases ExUnit [ExUnit] Using GenEvent to implement ExUnit formatters is deprecated. Please use the new GenServer based formatters instead 4. Deprecations Elixir [Access] Access.key/1 is deprecated due to erratic behaviour for missing keys, please use Access.key/2 instead with proper default values [Behaviour] The Behaviour module is deprecated. Callbacks may now be defined directly via the @callback attribute [Enum] Deprecate Enum.uniq/2 in favor of Enum.uniq_by/2 [Float] Float.to_char_list/2 and Float.to_string/2 are deprecated (use the :erlang functions if such conversions are desired) [Kernel] Deprecate support for making private functions overridable. Overridable functions must always be public as they must be contracts [Kernel] Warn if variable is used as a function call [OptionParser] Deprecate aliases with multiple letters, such as -abc [Set] Deprecate the Set module [Stream] Deprecate Stream.uniq/2 in favor of Stream.uniq_by/2 IEx [IEx.Helpers] import_file/2 is deprecated in favor of import_file_if_available/1 Mix [Mix.Utils] underscore/1 and camelize/1 are deprecated- update to v1.3.4 1. Bug fixes Elixir [Kernel] Ensure the compiler does not generate unecessary variable bindings inside case statements. This improves the code emitted and make sure "unused variable warnings" are not mistakenly silenced [Kernel] Move raise checks to runtime to avoid crashing cover on Erlang 19.1 [Protocol] Do not emit warnings when using protocols on opaque types ExUnit [ExUnit.CaptureLog] Flush Erlang's :error_logger before capturing to avoid mixed messages- update to v1.3.3 1. Enhancements Elixir [DateTime] Support negative integer in DateTime.from_unix/2 [Kernel.LexicalTracker] Do not consider remote typespecs as a compile-time dependency [Kernel.ParallelCompiler] Do not emit deadlock messages when the process is waiting on itself [Kernel.Typespec] Mark struct update syntax as generated to avoid false positives from dialyzer ExUnit [ExUnit] Make ExUnit server timeout configurable Logger [Logger] Use :ansi_color if one is available in metadata Mix [Mix] Add support for the :sparse option in Mix.SCM.Git [Mix] Skip dependendency loading if MIX_NO_DEPS is set to 1 2. Bug fixes Elixir [System] Use NUL instead of /dev/null on Windows when building System.build_info IEx [IEx.Autocomplete] Resolves issue with autocompletion on structs not working Mix [Mix] Also store external resources that are not part of the current working directory in compilation manifest [Mix] Always include the compiled file source in manifests- update to v1.3.2 1. Enhancements Elixir [Kernel] Support guards in else clauses in with Mix [Mix] Add MIX_NO_DEPS env var for disabling dep loading. Used for third-party scripts and tools like Nix package manager [Mix] Add mix test --listen-on-stdin that automatically reruns tests on stdin [Mix] Disable --warnings-as-errors when compiling dependencies [Mix] Add --filter option to mix deps.unlock to unlock only matching dependencies 2. Bug fixes Elixir [Enum] Return nil if enumerable halts in Enum.find_index/3 [Kernel] Do not attempt to load modules that have not been required when invoking regular functions, otherwise this invalidates the @compile {:autoload, false} directive. Mix [Mix] Ensure missing protocol dependencies are discarded in umbrella projects with shared build ExUnit [ExUnit.Diff] Ensure no leading or trailing when diffing some maps- update to v1.3.1 1. Enhancements IEx [IEx.Helpers] Add import_file_if_available for importing files only if they are available [IEx.Helpers] Add import_if_available for importing modules only if they are available 2. Bug fixes Elixir [Kernel] Ensure structs can be expanded in dynamic module names [Kernel] Ensure aliases warnings are not accidentally discarded when the same module is imported [Kernel.ParallelCompiler] Ensure two modules with cyclic struct dependencies cannot run into a deadlock when compiling [Kernel.Typespec] Support module attributes in remote types [Module] Do not expect stacktraces to be always present when dispatching to locals during the module compilation IEx [IEx.Helpers] Fix h helper for operators Mix [Mix] Do not load modules for xref purposes, instead use BEAM info [Mix] Ensure deps.check does not check archives (that's done in loadpaths) [Mix] Validate application properties before traversing them [Mix] Check for proper Makefile when compiling on Windows [Mix] Enforce space after comma in mix do- update to v1.3.0 Elixir v1.3 brings many improvements to the language, the compiler and its tooling, specially Mix (Elixir’s build tool) and ExUnit (Elixir’s test framework). The most notable additions are the new Calendar types, the new cross-reference checker in Mix, and the assertion diffing in ExUnit. See full release notes at https://github.com/elixir-lang/elixir/releases/tag/v1.3.0- Update to v1.2.5 Bug fixes [Logger] Stringify truncated function data in Logger [Logger] Ensure poorly formatted char data can also be logged by using the replacement character "�" (diamond question mark) [Mix] Do not assume @impl is always a list [String] Fix bugs in String.replace_* functions where it would not include the accumulated value for certain replacements - Update to v1.2.4 Enhancements [Mix] Add :archives configuration to def project that allows projects to list archive dependencies. --no-archives-check (as well as --no-deps-check) will disable the archive check. The :archives option is not checked for dependencies. [Mix] Add deps.precompile task as hook [Mix] Support --include-children in mix deps.compile option [String] Update version of the Unicode database to 8.0.0 Bug fixes [Application] Ensure spec/2 returns nil for unknown applications [Integer] Fix a possible binary leak in parse/1 [Mix] Purge Erlang modules on recompilation [String] Ensure split/1 does not break on non-breakable whitespace [String] Ensure NFC and NFD normalization pass all of Unicode 8.0.0 tests [Version] Allow dots in build info for versions in Version.parse/1- update to v1.2.3 + Enhancements * [Base] Add :ignore and :padding option to encoding/decoding functions * [Mix] Add Mix.Projects.deps_paths that returns the dependencies path as a map + Bug fixes * [ExUnit] Do not provide negative line numbers without generated annotation (for compatibility with Erlang 19) * [Mix] Reject non fullfilled optional dependencies later on in the convergence resolution for proper dependency sorting * [String] Fix incomplete data trimming on both String.replace_trailing and String.rstrip * [String] Attach debug_info back into Unicode modules for Dialyzer support- Update to v1.2.2 Enhancements [Kernel] Support @compile {:autoload, false} to disable automatic loading after compilation Bug fixes [ExUnit] Raise if trying to override reserved tag in setup blocks [Mix] Ensure retrieve compile manifests do fail if some compilers are not yet available [Mix] Automatically merge managers according to the mix > rebar3 > rebar > make order [Mix] Force recompilation if dependency was recently fetched - Update to v1.2.1 Enhancements [IEx] Support remote pids/ports with IEx helper i/1 [Protocol] Warn when defimpl is called for a consolidated protocol Bug fixes [ExUnit] Ensure assert macros can be used from quoted code [ExUnit] Do not warn in match assertion if variable is reused in pattern [Macro] Fix a bug in Macro.to_string/1 where a remote function could be accidentally interpreted as a sigil [Mix] Ensure dependencies are properly skipped when --only option is given to mix deps.get- Update to v1.2.0 + Erlang 18 support + Many language improvements + Please see https://github.com/elixir-lang/elixir/releases/tag/v1.2.0 for the complete changelog. - Use original source tarball - Add erlang-dialyzer dependency for the test suite- Update to version v1.1.1: + Enum.sample using reservoir sampling + guard for Enum.sample/2 + eliminate count>=n corner case in Enum.sample/2 + don't walk the collection on 0-sized Enum.sample + test Enum.sample with different random seeds + fix Enum.sample docs + Enum.sample: use Tuple.duplicate for sample init + Enum.sample/2: dedup code in reducer branches + Start v1.1.0-dev + Improve UndefinedFunctionError + Fix my own typo in helpers.ex + fix previous commit typo bug + Fix a typo in IO.inspect’s doc + Fix a typo in Code.eval_file's doc + Fixed String doc link + Ensure chunk/4 is haltable + fix example sample.ex -> sample.eex + Do not require {ref, :done}, instead allow sync removal + Add U as ungreedy option, soft deprecate r + Allow U (upper case u) as an option for sigil_r + Fix a typo in Dict's docs + Load dependencies before deps.check compiles + Add tests for add_process_handler/2 + default ports for WebSocket + Update CHANGELOG + Include stracktrace on ExUnit timeouts + Ensure Mix.Config is deep merged + Add compatibilty with OTP 18 typespec changes + Small fix for Application docs. Returning value is not a tuple + Update release instructions + Change version requirement to be MAJOR.MINOR + Filter out :elixir_lexical from stacktraces + Improve GenEvent docs + Remove previously generated beams before installing new ones + Documented File.stat options + Improve stat docs + Add MIX_ENV output to archive.build + Report correct location if local.hex failed + Bump Hex requirement + Add copy_path! instead of read_path!(..., file: ...) + Test the way System.cmd finds for executables + Change implementation of System.cmd to match the docs + :gen_event_EXIT can only be successful reasons for process handlers + Remove :elixir module from stacktraces + Also remove elixir_exp from stacktraces + Fix compiler warning + Do not pass false into port command + Move printing out of copy_path, always create dir + Introduce `StringIO.flush/1` function + Define value before using it + Fix spec for surround_many + Fix :stderr_to_stdout option + Send elixir version as parameter when installing hex + Make some docs more gender neutral + Give higher prio to powershell on windows + Fix documentation of IO module + Don't crash on malformed proxy env var + Refactor and add new rewrite rules + Purge and delete modules before compiling them + Also purge and delete during tests + Test that we do purge and delete artifacts + downcase path comparison in application directory test + Support mix help --search PATTERN + Write to manifest when file is removed + --elixirc-paths should be a subset of project paths + Add task for pushing standalone mix + Fix String.replace/4 typespec + Build .beam location from scratch on mix compile.elixir + Remove unecessary comment + Add OTP 17.3 to run on Travis CI + Added :read_link option, doesn't break current tests, needs new tests + Make the parameter more explicit + Fix a couple of minor typos in docstrings + Added File.lstat and File.lstat! functions and associated tests. These functions are elixir versions of the unix lstat function. + Based on email from Paulo Almeida, I removed the apparently extranous calls to IO.char_data_to_string in the stat! and lstat! methods. + Revert "Based on email from Paulo Almeida, I removed the apparently extranous calls" + No longer inline binary expressions in EEx + fix typo + Fix missing concatenation operator. + Fix test for mix deps.clean. + set null prompt function in dumbterm mode + Do not set not shell as we know have a custom prompt + Update CHANGELOG + Revised tests to use tmp_path for file paths. + fix typos + Fix typo + Use unamed tables for module compilation + correct is_nil @doc to have the same format as the other is_* functions. So it is consistent in the Kernel > Summary docs + Use a not confusing example for String.grapheme + List foldl, foldr @doc + fix link to bug reports + explaining #elixir-lang + explaining #elixir-lang (better option) + mix.ex: example "mix run hello" -> "mix hello" + Properly handle eval_failure warnings, closes #2835 + Unify error reporting from EEx, closes #2833 + Improve token errors for aliases, closes #2818 + Fail to compile try without else/catch/after/rescue, closes #2797 + Update release instructions + More updates to instructions + spelling mistake in iex docs: dafailt -> default + fix escaped terminatiors in sigil + Highlight main logger level config + Fix @doc of List.keyfind,keymember? and keydelete + Replace `defstruct/2` with `defstruct/1` + change some doc examples to iex style + fix typo + Use elixir tmp directory instead of /tmp, closes #2849 + Create directory before copying file + fix typo + should throw an exception when the second argument is negative + complete test coverage for Stream.take_every/2 + Fix `String.ljust/2,3` and `String.rjust/2,3` functions + Move string justification defaults to the function heads + No need for `do_` prefix in `String.do_justify/4` + improve important links + link to docs.html + Fix type of Inspect.Opts limit + Correct Enum.take, Enum.take_every, Stream.take, Stream.take_every to accept proper nth/count values + fix documentation of String module + fix spec and add more test for String.duplicate/2 + Improve documentation of Dict module + fix inline documentation because of broken ansi representation in iex + fix typo + fix floating point approximation error + fix wrong String.split_at/2 output when second arg is not an integer + fix wrong String.at/2 output when second arg is not an integer + explains when to use Float.parse/1 and that String.to_float will not deal with integer fmt strings + bypass warning + fix mistake on test + fix doc line's length and test one more time + Fix SupervisorTest :push handle_cast method + Move 0 index match to the function head in `String.split_at/2` + Move same pos match to the function head in `Regex.apply_list/5` + rename two identical variables to same name and remove guard + Make IO.ANSI.Docs readable on white background + correcting broken url in GenEvent docs + fix wrong CRLF grapheme + Don't show hex update message on mix local.hex + fix broken link in GenServer module + Add doctest to the test template + Make map_reduce @spec stricter + Fix command_to_module_name not converting snakecased names properly + Drop unneeded functions and fix module_name_to_command conversions + Fix GenServer.cast/2 docs + Document --unlock flag in deps.clean + Add number of skipped tests to ExUnit output + Ensure compilation does not leave random spurious data on failure + - adding example for float-32 - making it more clear that ther order of type options doesnt matter + Clarify \x applies to unicode codepoints + Add Enum.minmax and Enum.minmax_by + Remove unnecessary binding + Add @spec for `main` in escript + Fix typo in module documentation + Fix splitting of empty strings on regex with trim: true + Fix string splitting on regex when both :trim and other options are present + Raise on previous alias warning expansion + Update CHANGELOG.md + Delegate to :erlang.binary_to_float on Float.parse/1 + Introduce an implementation of Integer.digits/1 + Fix misspellings in docs, comments, and strings. + More spelling and grammar fixes. + Update documentation for Enum.join + fix typo + introduce Enum.reverse/3 + Add Integer.undigits/2 + Fix broken IO.ANSI.Docs parser + Fix IO.ANSI.Docs for multiple stars/underscores/backticks + Use the new build env on Travis + add 17.3 to allow_failures section + fix corner case for end detection + add more test cases for in word symbols + Execute tests with same name + Add test cases for non-space delimiters + Use IO.ANSI.format/1 for escaping mix shell messages + Register test with duplicate names only once + Clean up IO.ANSI.Docs handling of ` + Update CHANGELOG + fix documentation for Record Types + remove unnecessary prefix + Improve archive error on Windows + Improve IEx autocomplete implementation + Enum.sample/1 should raise if the list is empty + Fix incorrect boundary condition + Add `\g{N}` for &Regex.replace/4 + Document `\g{N}` + Remove empty/1 callback from Collectable implementations + Fix doc build instructions + Improve Mix doc intro section + No need for default `code` arg in `IO.ANSI.Sequence.defsequence/3` + Simplify color sequences definition in `IO.ANSI` + Use same verb tense across Elixir documentation + Remove dead @doc snippet + Add support for --werl in Windows bash-like shells + load modules from load path + Always use the loaded application modules + Optimize and also add completion for Erlang modules + Add Enum.unzip/1 + Improve loadconfig docs + Remove test duplication + Use actual range in the `EnumTest.Range` + Improve test coverage for `Enum.reverse_slice/3` + Add `@spec` for `Enum.reverse_slice/3` + require otp 17.3 to pass on travis + warning about dumb terminal just irritates users + Improve `Enum.reverse_slice/3` performance More than thrice for lists Around 35% for other collections + Only shut down Logger if the application is being actually started + improved performance of Integer.undigits/2 + this resolves #2952 compile error + fix typos + smart_engine: Rephrases doc + Add cover directory from 'mix test --cover' to default .gitignore + Optimize reduce for maps + Keep .gitignore ordering + Fix bootstrap issues + Improve docs for URI + Further improve URI parse docs + Fix mix shell tests when ansi escapes are disabled + Copyright requires just the starting year + Do more strict matching on URI scheme + Implement Integer.parse/2 + Use a guard to check if a valid base is given to Integer.parse/2 + Integer.parse/2 shouldn't parse when base is not an integer + Remove unnecessary Integer.parse/1 + make doctest syntax consistent + fix spec for Integer.digits/2 + Check Elixir version right after archive installation + Document the implications of setting embed_elixir to false. Closes #2970 + Specify error from node/1 as an atom + Compile docs to doc/ + Fix a few simple typo's, found while perusing the code. + Keep original stacktrace on inspect errors + Remove "private structs" from struct types + Don't go through hex.pm API server to install Hex + Update CHANGELOG + Add column info in tokenizer, #2987 + Fix line extraction in elixir_parser + Change location info format in tokenizer + Store tests in a list to keep ordering + Support safe: boolean option in inspect + Count \\ as just one character in column info in tokenizer + GenServer docs fix: missing {:ok, state, :hibernate} for init callback + Fix column counting in elixir_interpolation.erl + Improve IEx helpers docs + Fix failing documentation assertion + Remove broken and unfixable delegate_locals_to implementation + Fix inconsistency of collection in Enum + Failing test demonstrating ExUnit crash on inspect failure + Ensure ExUnit survives inspect and exception message failures + Fixed typos in Supervisor doc + Ensure mix compiler is able to handle nested directories + add missing assert call + Set MIX_ARCHIVES in mix tasks archive tests + Improve error message when using attributes inside match in module + Fix error documentation for Kernel.hd/1 + Invert the order of non matching token messages (closes #2993) + Fixes #3009 + Add missing :ok return + Optimize common flat_map_reduce paths + Do not repeat the module name + Inline common map cases in into + Add --color option description to mix moduledoc. + Add examples to System.cmd/3 + Fix the logging with `metadata[:function]` + Add test for metadata defaults + Use actual message in the metadata assertion + Remove unused umbrella flag + Don't ignore escape characters in regex + Do not show aliases and import warnings when code cannot compile + Merge pull request #2801 from fishcakez/app_env + Get rid of ets from Mix.State + Add an example of Enum.find_value/3 to the docs + Avoid escape characters in System.cmd/3 docs + Corrected incorrect docstring. + Change Record#extract to a function - Also adds docs for defining records that were extracted with anonymous functions + Explicitly pass allowed attributes to __info__ + Do not choke when Exception.message/1 does not return a string + Call Logger.flush in System.at_exit when running mix test. + Ensure priv/include are copied on Windows even if source did not change + Improve error message with invalid structures in maps + Update CHANGELOG + Add Dict.get_and_update/3 + Add Keyword.get_and_update/3 + Optimize the performance of Map.get_and_update/3 and Keyword.get_and_update/3 + Avoid export vars in destructure + Ignore exported vars warning + Improve docs for functions in File + Simplify Logger checks + Update CHANGELOG + Use :application.info[:loaded] to avoid races + Fix `Keyword.get_and_update/4` funtion name + Suppress warning in `Mix.Tasks.Test` + Make `Dict.get_and_update/3` overridable + Always rebuild structures on Windows + Ensure rebar is quoted when running escript on windows + No need for `args` in `Mix.CLI.load_mixfile/1` + Fix a minor typo in the docs for `Module` + Add an example of defining a `__using__/1` macro + Fix race condition in undef logger translator tests + Bring change removed from v1.0 into CHANGELOG + Tell user to run mix deps.get on lock mismatch, closes #3038 + Fix some grammar in the docs for Access, and add more docs + Use which_applications instead of undocumented info + Fix boundary in Enum.take/2, closes #3042 + Optimize more Enum and Stream functions + Added man page for iex/elixir + Polish the docs for the Kernel functions delegated to Erlang + Add examples to some of the Kernel functions delegated to Erlang + fix broken system path test + Remove a Kernel doctest that issued a warning + Add details to the docs of a bunch of Kernel functions/macros + Expand attributes and macros in record extractor + Ensure quoted expressions are properly shown in error messages + Make it clear that Keyword does not preseve ordering + Rebar dependencies can be compiled with mix if they have a mix.exs file + Raise an appropriate error when raise/1 is called with an invalid arg + Remove @moduledoc false from requirement + Allow rebar dependencies to be specified via :path + Remove 17.1 which has a bug in its filelib:wildcard check + Add the timeout option for tests + Add the timeout option for running the test + update links to website + Polish the docs of a bunch of Kernel functions + Added to tuple.ex module doc a see also note reference the various Kernel functions dealing with tuples. The Rationale for this is that its confusing for a newcomer to the language that these are not members of tuple and it provides a hint as to where these are actually found + singular plural issue fixed for tests + Throw syntax error for `:foo.Bar` + Add positive test case for punctuation in atoms + Remove internals from IEx stacktrace + Set the timeout to infinity when trace option is true + Update CHANGELOG + Refactor the runner configuration to make it testable + Add a note for in memory reloading to r/1 + Logger: Format OTP 17.4 terminate reasons + Fix Exception.stacktrace_entry/0 type spec + Logger uses chardata, not iodata + Add tests for IEx.Helpers.import_file/1 with missing file + Add an :optional option to IEx.Helpers.import_file/1 + Update docs for `IEx.Helpers.import_file/1` + Add Record.extract_all/1 returning all records information + small corrections in docs + Also ignore elixir_clauses in stacktraces + Update new major.minor instructions + Hack The Docs contribution + Add import flag to Bitwise + Replace os.cmd in git with System.cmd, done one to verify what is wanted. + Correct the phrase "if there already exists" + Fix httpc proxy option profile + Replaced all uses of :os.cmd + Use stderr_to_stdout option in run_cmd_or_raise + Fix @spec for Path.wildcard + doc:return value + create individual tasks for "make docs" + Move test for `:foo.Bar` syntax error + Add more documentation for ~> requirements + Correct usage of `ExUnit.Assertions.flunk` and add guard for it + Tweak the docs a bit. + No need to pass cmd, include output in errors + Use Behaviour in exception + Update Task logs to OTP 17.4 behaviour format + Update logger translator tests for OTP 17.4 format + Polish the docs of some `Kernel` functions + Polish the docs for the Kernel.def* set of macros + Mix: add comma at the end of worker() + Turn some examples in `Kernel` into doctests + Support R18 standard error + Do not erase stacktrace on bad configs + Fallback to undocumented API only if necessary + Polish the docs of the sigils in the `Kernel` module + Fixed the formatting and some docs in the Tuple module + Ensure mix CLI-wide that we print Logger messages + Fix some docs in the `Atom` module + Also run tests on 17.4 + Replaced all but one Mix.shell.cmd call with System.cmd. The remaining call is for windows systems using powershell and I don't know the appropriate token parsing for powershell command lines. + Reuse `ArgumentError` creation in `elixir_quote` module + Add test for error on struct field value + Use `:lists.reverse/2` instead of `:lists.reverse/1` and `++` + Emit deprecation warnings for Access protocol + remove blank in README template + Unify empty parens and map exprs handling + Split containers and call args expressions + Add documentation with examples how to assert return values and capture IO output at the same time + Add String.levenshtein_distance/2 and "Did you mean?" suggestion to mix + Add distinction between no_parens_one and no_parens_ambig to parser + Throw syntax error on [f g :a, :b] + Add comments explaining changes to parser + Add assertion that `[f g a]` is ok + Add line breaks to code comment + Polish the docs for the functions in the `Float` module + Replace `String.levenshtein_distance/2` with `String.jaro_distance/2` + Remove crypto and syntax_tools dependencies + Use best match in "Did you mean?" mix suggestion + Store relative paths in erlang manifest + Replace "in between" with "between" in comments and doc strings + Replace "parenthesis" with "parentheses" in comments and doc strings + Improve tokenization of identifiers and `k: v` keys + Use identifier instead of name + Fix typo + Ensure changes in child deps forces the parent to recompile + Update CHANGELOG + Make ::/2 a special form + Also check mix options for divergence + Revert "Merge pull request #3109 from oneeman/refine_no_parens_parsing" + Return value when matching with `_` on last line of block + undefined attribute does not need to be set to nil + Added test for markup ending in . and code to pass the test + Improve docs for GenEvent.stream/1, closes #3138 + adds Dict.get_lazy/3 + adds Dict.pop_lazy/3 + adds Dict.put_new_lazy/3 + adds guards to dict lazy funs + Clarify where truthy and falsey values suffice in the Enum docs + Fix ExUnit.Assertions assertion fail doc example + Produce clearer messages for syntax errors before a sigil + Add example to Regex.replace with option "global: false" + the example is correct but in the description have a small difference + Mention default values in String.split/3 + remove duplicate words + add quotes to nil and false + Convert quoted interpolation to strings + Refactor compiler errors (elixir_errors:parse_error/4) + Properly inline regex docs + Add error_logger metadata when notifying Logger + Reduce time complexity of Enum.uniq and Stream.uniq + Add dedup(_by) and usort(_by) to Enum and Stream. + Make Stream.dedup/1 use Stream.dedup_by/2. + Depreciate Enum.uniq/2 in favor of Enum.uniq_by/2 + Update CHANGELOG + Module.split accepts only module atoms or strings naming these (#3161) + Rollback to use Mix.shell.cmd + Add output and stderr_to_stdout options to Mix.shell.cmd + Use exits instead of stop so we get stacktraces + Add `Keyword.get_lazy/3` function + Add `Keyword.pop_lazy/3` function + Add `Keyword.put_new_lazy/3` function + Add `@spec` for `Keyword.pop/3` and `Keyword.pop_first/3` + Make Exception.exception/1 support binary argument in default impl. + Increase elixir_counter timeout + Make `on_definition` insertion more readable + Refine parsing of no parens calls + Rename output to quiet in Mix.shell.cmd + Store behaviour docs in the byte code + Replace is_win?/0 with windows?/0 + Fix doctest :only, so it accepts multiple functions + Optimize `Keyword.pop(_lazy)/3` functions + Optimize `Keyword.new/1` function + Remove duplicated doctests in `Keyword` + elixir.1 and iex.1 share the same options list + Optimize `Keyword.pop_first/3` function + Amend elixir and iex man pages + Easier to understand Enum.member? in doctest filters + Filter :moduledoc + Add elixirc man page + Move moduledoc fun_arity down to where test is extracted + Update documentation for doctest + Add space after comma: Format consistently + remove double space + Speed up URI.decode_query/1 + Speed up decode_www_form + Add example to `ExUnit.CaseTemplate/using` + Remove superfluous guards in `IEx.Introspection` + Improve handling of multiple modules in the `h` iex helper + Rename `print_doc_arg` to `format_doc_arg` + Comments from the last review taken into account + Add a test for submodules + Add `IEx.Introspection.puts_error/1` + Run all tests with +T 9 to get a better chance at finding races. + Fix race discovered by +T 9 in GenEvent test. + Simplify docs lookup in `IEx.Introspection` + Add `IEx.Introspection.print_doc/2` + Introduce `b` IEx helper to display behaviour docs + Polish the docs for the functions in the `IEx.Introspection` module + Don't emit deprecations for access + Fix error in EEx docstring ("a macro" to "an expression") + Alias `Kernel.Typespec` inside `IEx.Introspection` + Move doc default to the `IEx.Introspection.print_doc/2` + Make `defmacrocallback` to be shown via IEx `b` helper + Add `IEx.Introspection.puts_info/1` + EEx: fix interpolation inside quotations + Make IEx `b` helper to accept single module argument + EEx: convert tag type markers to char lists + add backward compatibility with cmd/2 + Check the number of schedulers online in exunit suite, closes #3199 + EEx: Add trim option + fix Kernel.=~/2 for "" =~ "" + Document and test the behaviour of Process.exit(self(), :normal) + Document that ExUnit.Case :async defaults to false + Explicitely declare argument names for functions with unnamed arguments. + correct @spec for `handle_expr` + Improve error message for invalid struct fields definition + Refactor trim mode + add backticks to a massive amount of true, false and nil + rename function arg. when "other" was used + Only make tokenizer return char lists + Update CHANGELOG + fix failing test on erlang 18 release candidate + fix typo in previous commit. bodyless defmacro added to show proper arg in b/1, t/1 + Make `import Foo, except: []` respect previous imports + Optimize `Keyword.new/1` function + Fix spec for `Keyword.new/2` + Optimize `Keyword.new/2` function + Support specs for unreachable private functions + Added documentation and examples for List.to_existing_atom/1 + Update CHANGELOG.md + Remove function deprecated < 1.0 + Support build_embedded and consolidate_protocols + Support start_permanent + Generate build_embedded and start_permanent in new apps + Do not print app name as a filename + Improve error message for IEx.pry/1 + Update rebar_test.exs + rename :shell option to :system in mix + Ensure we consolidate only when there was a change + Update archive.install.ex + Remove readd_paths + Added documentation and doctest examples to many of the functions in code.ex + Ensure we quote proper file on exceptions + Do not propagate protocol consolidation to children + Clean up ExUnit.Assertions docs + Fix doc formatting in ExUnit.Formatter + Keep IEx history in an agent instead of process dictionary + Add message for failure due to `--warnings-as-errors` + Avoid missing behaviour warnings when compiling erlang files + Polish the docs for the `Set` module + No longer translate arguments to `@on_definition` + Tidy up `IEx.History` implementation + Update TODOs + Clean up spaces in code docs + Fixes for Erlang 18.0-rc1 + Update translator.ex + Keep IEx history state in the evaluator process + Add some docs to `defstruct/1` + Add some docs to `Kernel.defprotocol/2` + Wait until test process is down in ExUnit runner + Remove guards. Fixes #3248. + remove repeated word + Tag async tests as such + Ensure protocols are also consolidated in umbrellas + Update CHANGELOG + Assert proper return type from app.start task + Replace `:erlang.now/0` with `:os.timestamp/0` + Rename `term` into `value` in `Tuple.insert_at` + EEx: correct doc for handle_assign/1 + Refactor File.cd! in terms of File.cd + Refactor File! methods to avoid going through IO.chardata_to_string twice + Implement `Tuple.append/2` + Cosmetic changes in the elixir, elixirc and iex man pages + Added a preview version of the mix man page + Add `Tuple.append` inlining + Fix small defects + EEx: allow `)` after `end` in end tokens + Introduce `MapSet` data type + Improve test coverage for `HashSet` + Fix whitespace errors in Integer source file + Add further docs for `Kernel.struct/2` + Ensure we escape config before injecting into escript + Simplify `Application.get_env/3` + Add `Application.fetch_env!/2` + Do not expand in/2 argument in module body + Avoid "module currently being defined" races in tests + Polish the docs for `Regex.split/2` and `Regex.scan/2` + Fix default value on `which_applications` timeout + Mix new: raise if mod name in use + in use -> taken + Fix Version.pre typespec + Fix to_string for Version with numeric pre + Rename Enum.sample to Enum.random. Fixes #3285. + Join pre-release parts with "." + Support maps in `Module.simplify_signature/2` + Mix: fix import_config with non-matching wildcard + Clean up defstruct/defdelegate implementations + Support for structs in `Module.simplify_signature/2` + Provide tab-completion for aliases + No need for `started?/0` check in `start_iex/0` + Refactor `IEx.Autocomplete` + Improve message for compilation error writing .beam + Refactor `Kernel.CLI.CompileTest` to be async-safe + Fix inferred argument names in `Module.simplify_signature/2` + Update CHANGELOG + Document dedup uses ===, remove usort + Optimize simplify_signature by traversing only atoms again + Clean up cmd tests + Do not trigger the code server on Any dispatch + EEx doc: Prevent list from being rendered as code blocks + Embed consolidation information as a function in the protocol + Derived protocols should go through Any + Revert d49fb06 now underlying issue has been resolved. + Underscore does not need to handle paths + Added documentation and examples for File.stream! + Use agents to store Mix config + Update gen_server.ex + Revert "Update gen_server.ex" + Clarify what deps.clean removes + Makefile: allow passing REBAR and PREFIX via environment + cli_test: skip test that relies on chmod() when under fakeroot + make test: avoid writing to $HOME + Clean up MIX_HOME setup + Revert "make test: avoid writing to $HOME" + use $REBAR on mix tests + Ensure Access is derivable for now + Improve error message and increase test timeout to 60 seconds + Properly set remaining timeouts + Ensure blocks do not clobber eex buffer + Fix `Keyword.get_and_update/3` function + Correct `Port.info/1,2` functions + Fix `=` to `==` in a KeywordTest test + Bugfix to syntax error before sigil + update anchor portion of link to erlang docs + Give a meaningful timeout value to ex unit runner stats handler + Trace always win over timeout when set + Fix runner test + Add `Process.hibernate/3` + Do not assert when find_executable is returning relative paths + Refactor extraction of meta location + Rename the first argument to the Logger macros + Added another preview version of the mix man page + Support printing pids and refs in Logger metadata. + Consider subdirectories in `Mix.Project.config_files/0` + Fix doc formatting for `Path.split/1` examples + Improved docs for bitstring. + Deleted the note. + Add String.splitter/3 and optimize String.split/3 + Ensure we return strings on String.split based on unfold + Ensure String bool functions do not fail on empty lists + Remove empty starts_with usage in IEx.Autocomplete + Fix `File.cp/3` in case of a file coping to itself + Correct doc and error message for `File.cp!/3` + Completed mix man page + Fix docs typos + Read assert and refute receive timeouts from ex_unit config + Optimize Dict.merge/2, make Dict use cae clearer + The latest requests were taken into account + Fix including .app file in archives + Add test for .app file in archive + Add tests for fenced code blocks in IO.ANSI.Docs. + Initial support for fenced blocks in IO.ANSI.Docs. + Fix an errant function arity in the docs + `surround_many/5` handles empty documents + Add unit test for IO.binread with :all option + Read 4K blocks instead of lines in IO.binread + Fixed several mistakes in the elixir and iex man pages + profile.fprof mix task + Update escript.build.ex + properly layout the table + minor styling fix + IEx Autocomplete assumes module at each level #3361 Squashed commits: [f0bb5a0] move sublevel test module inside IEx.AutocompleteTest [5b70ad9] move sublevel test module inside IEx.Autocomplete [0130aa3] add test for iex autocomplete sublevels [f88b853] IEx Autocomplete assumes module at each level #3361 + Copy-edit the module documentation of Application + Fix GenEvent detecting module that isn't loaded + use # instead of nbsp + Improve test coverage for implicit protocol deriving + Remove duplicated assertion in `ProtocolTest` + Suppress warnings in `Inspect.Algebra` + Improve docs for Stream.interval + Optimize rstrip + Handle corner cases for small strings in rstrp + Use reliable home directory source + Add docs for simple one for one + Also document exit reasons + Improve wording + docs(Mix.Tasks.App.Start): fix typo + Ensure we properly underscore acronyms followed by paths + Defining arg0 for System.cmd tests so it can work with busybox + Ensure take/1 does not consume more than required + Speed up upcase and downcase for large strings + Only consider outer halts in flat_map when the op is not halt itself + Remove duplicate test in `StringIOTest` and correct test names + Fix `StringIO` processes leakage in the `ExUnit.CaptureIO` + Handle :undefined in Exception.format_arity/1 + Remove leftover obsolete code + Fix race condition in logger translator test + Update CHANGELOG + Really fix race condition in logger translator test + Changes to "v" IEx helper + Rely on loaded_applications instead of running ones + Avoid non-fix table errors + Skip test that depends on read-only file when running as root + Fix typo + Restructure and add to Kernel.<<>>/2 docs + Clean up <<>> docs to avoid doctest failures + spell backpressure consistently + Allows underscores in binary, octal and hex literals. + Ensure that a digit follows the underscore in binary, octal, hex notations. + Mention the use of records in pattern matches + Small manpage corrections + Ignore man build artifacts + Remove an erroneous comment from String.to_char_list's doc + Elaborate on codepoints and the :binary module in String.to_char_list + Support IEx.pry with --remsh + Use https on github shortcut + Use https in test fixtures too + Convert last git reference to https + Better documentation for Task.await + Add support for Enum.reduce_while/3 + Move terminate reason to second line in logs + Add example of Bitwise in guards + Additional Enum.reduce_while/3 tests + Update Application docs to make them more accurate. + fix warning of unused variable in test + Remove previous archive after download success + Use file alias 'F' for consistency + Corrected grammatical errors in string documentation + Corrected grammatical errors + Reduce length of first paragraph to improve summary readability. + Move current_env to IEx.Server + Move autocomplete server to IEx env + handle completion of erlang module aliases + Build embedded requires explicit compilation step + Add explicit docs that Mix.Config sets Application env + Fix race condition in gen_event tests + Add more configuration examples to Logger + Be clear where the config is set for logger + Add example of Agent.get_and_update/2 + Typo in doc for custom logger backends + raise 'Not yet implemented error' on such tests + add :not_implemented tag + Not implemented test sets tag + Fix typespec test on OTP18 + Revert "Use https on github shortcut" + Revert "Convert last git reference to https" + Revert "Use https in test fixtures too" + Fix reversed Line, Column in tokenizer + Use the given length instead of calculating it + Properly offset columns on dot + Introduce `ProxyIO` + Introduce `Logger.Backends.Capture` + Introduce `Logger.CaptureLog` + Add docs and custom io device support to capture_log + Consider `:standard_io` as a valid device name + Document ProxyIO and implement own :io.request + Demonitor proxied device and consider unknown messages handling + Introduce `Logger.CLIFormatter` + Add tests for `Logger.Backends.Capture` + Document Logger.CLIFormatter + Rename `ProxyIO` to `ExUnit.ProxyIO` + Rename `Logger.CaptureLog` to `ExUnit.CaptureLog` + Add support for `:capture_log` ExUnit test tagging + Handle map() typespec correctly + Fix map typespec in helpers test + Fix map typespec in helpers test + Switch mix to using https:// instead of git:// in GitHub URLs + Move tests to Erlang 18 which has proper logger behaviour + Fix unused variable warning in logger test + Translate emulator logged process crashes in 18.0+ + Revert "Merge pull request #3411 from doomspork/fix-hex-removal-bug" + Give curl priority over wget + fix for Erlang R18.0 changes in maps module + Support dialyzer attribute + Get rid of `ProxyIO` and merge `:console` and `:capture` backends + Ensure we also normalize badmap and badkey in rescue + Run badkey and badmap only on 18 + Improve Kernel.Def + Make error messages in lowercase + Add muting for the `:console` backend for the duration of capture + Mix new: use only umbrella template for config.exs, not both + Generate installation instructions with READMEs + Improve opaque types section on doctests + Add missing dot to docs + fix typo in special_forms + Fix the logger format in the Logger moduledoc to match the actual used one + sync documentation with code + Mention Enum.reduce/3 in Enum.reduce/2's documentation. + Move add/remove logger backend to client + Improve error message for bad raise + Add test for log capture removal on exit + Simplify `ExUnit.Server.log_capture_on/1` return + Update special_forms.ex + Fix warnings in doctests + Use shell for fetching hex versions + Set proxy options for the correct URI scheme + Improve docs for mix run + Clarify example in ExUnit.Callbacks docs + Restrict support for binary message in the default impl of exception + Do not rely on ansi escapes, closes #3456 + Only remove extra archives + Support rebar3 style git refs in rebar.config files + Do not allow nested ambig expressions + Disallow more ambiguous expressions + Ensure proper precedence of operators when mixing matched and unmatched + Makefile: fix manpage installation in packages + Introduce `List.keytake/3` + Adjust code in `List` to style used in the codebase + Simplify `List.do_zip/2` + Fallback to known Elixir version if csv is not available + Improve docs for Task supervisor + Fix implementation of Stack module which doesn't fit to the Supervisor implementation + Add warning on underscored variable access + Reword Agent docs for readability + make absolute path for gitignore rule for man + .gitignore : sort alphabetically + link to search issues + Provide link to Elixir's GenServer tutorial page + Split handle_call and handle_cast callbacks in GenServer docs + Make `Logger.log/3` macro and introduce `Logger.bare_log/3` instead + add proper credits to copyright holders + update links to https. remove period adjacent to URLs. + standardize erlang.org/doc links to use www + Remove reference to dynamic operators in table + Check for compile_path on build_embedded + Enum & Stream, take/2 & take_every/2 variables renamed. +Improvements + Enum.take_every/1: remove unnecesary Module reference + Clarify which call sets up the Task monitor + Load IEx env just once to avoid race conditions + Update CONTRIBUTING.md to avoid code style pull requests + Optimize struct building + Add explicit sort of map to Mix.Dep.Lock.write/1 + Improve IO docs + Make `Macro.interpolate/2` private + rename Enum.minmax* due to inconsitencies + rename Inspect.Algegra.folddoc due to inconsitencies + Update CHANGELOG + Provide detailed error message for nested parens calls + Bitwise module: remove docs in __using__ and move it to @moduledoc + Favor explicitness in Mix.Utils.read_path with rebar/archive installs + Update regex.ex + Correct docs for -- + Fix re-registering of device after exit signal in `ExUnit.CaptureIO` + Enum.slice Check for integers in arguments + Avoid race condition in tests + Enum.slice/2: guard added was missing from previous commit + Use `spawn_monitor/1` to avoid race condition + Improve `capture_io/3` on exit test + Allow Logger metadata removal from the pdict + Ensure Logger metadata is merged on log call + Preserve metadata order defined in the backend's configuration + lock / git scm mismatch should be mismatch + Improve error message for build_embedded true + Update elixir compiler manifest to use file:consult/1 + Split compile and runtime in lexical tracker + Only recompile compile time dependencies in mix projects + Reduce noise in lexical tracker output + Streamline aliases and imports in lexical tracker + Polish the documentation for Mix.Task.alias?/1 + Add man pages to Precompiled file + run `man/make clean` dir after `make install_man` + Merge `man/Makefile` into `Makefile` + Start logger if --no-start is passed + Better documentation for the GenServer terminate callback + Fixing typo in Task.Supervisor.async/4 distributed task docs + Add an example for running Task.find + Pass build path as ERL_LIBS for deps.compile commands + Introduce Task.yield/2 and Task.shutdown/2 + Fix grammar in Macro.expand/2 + IO.inspect: @specs fixed, + see full options + Tweak the docs for the Inspect protocol + Mention restart: :transient in Task moduledoc to clarify Supervised Tasks example + Avoid race condition in `capture_io` "device re-registering" test + Make a distinction between strict containers and strict calls + Match on proper error message prefix + Speed up `Enum.take_random/2` for big inputs + Optimize many functions in String + Add a note to the docs for Enum.reduce/2 + Improve mix.exs code sample + Improve error message in case of lockfile eval failure + Indent code sample for __protocol__/1 & impl_for/1 + Mention expressions without results in doctests + Raise if piping into binary operator with 2 args + Fix Macro.pipe syntax when bootstraping + doctests raising exceptions and assert_raise show original stacktrace + Allow tests to be skipped with @tag :skip + Update CHANGELOG + Support translator_inspect_opts + Be more strict on the supported deps formats + Validate :only in mix deps, closes #2980 + Make sure we support multiple environments in only + Access is no longer a protocol + Inline map operations in put_in and update_in + Remove +T 9 flag + Do not compile project if deps contain the task + Fix Docs: Kernel.++/2 is not allowed in guards + Restrict ranges to work only with integers + Improve coverage for dynamic in clauses + Add @type struct and error when overriding builtins + Set Agent initial call + Stop with bad_return_value on bad return in Agent + Rename release_zip to release_precompiled. Fixes #3543 + Add = to list of functions that handle returns + Warn when numbers or binaries are not used within a block + Handle optimizable returns explicitly + Add useless building warnings for module attributes and variables + Add quotes. Fixes #3536 + Introduce :capture_log ExUnit configuration. + Raise an error if there are no files available to run test + Move logger flush to kernel cli, closes #3100 + Fix var warnings + Fix bootstrap issues in kernel/cli + Check for PID result from Logger + capture non-symbolic operators (&and/2, ¬/1, &c.) + Warn if app configured but not started when build_embedded + Handle abnormal exit in System at_exit + Update app.start.ex + Use or in left in [a, b, c] as the compiler can opt it better + Remove warnings from erlang suite + Allow nil pid in task + Always unlink when shutting down task + Support custom tasks using monitor of registered process + Add GenServer.whereis/1 + Clean up typespec docs to avoid current confusion + Remove compiled protocols on mix clean. Fixes #3541 + Warn defaults not defined in function head with multiple clauses + Clarify some type descriptions in typespecs + Add test to verify compiled protocols are removed + Further optimize in range + Add application to logger metadata + Ensure to always clearn up logger configuration + Move test to compile task (compile.all is an impl detail) + documentaion for module names, variable names and custom sigils + Added a blub about underscore names to the `import` documentation + Fix identention inside lists + URI: add RFC links + Mention sigil_R as valid option to create a regex + Fix race condition in `CaptureLogTest` + Dog food `Application.put_env/3` + Tidy up `Mix.Tasks.Profile.Fprof` + Remove dead code from mix tasks tests + Alias `Fprof` mix task for readability in tests + Warn on build embededd instead + Fix doc comment for File.cp_r + Improve async docs + Stop/unload applications started/loaded in mix tests + Always warn on mix config when application unavailable + @callback can now be used directly (without Behaviour). Add @macrocallback. + Update CHANGELOG + Add a short description about ExUnit and Mix improvements too + Soft-deprecate Behaviour + Remove usage of use Behaviour + Makefile: print a success message on `realease_precompiled` + Clean up makefile + Improments in module, function & variable names syntax + Make a distinction between Location, Token and Node in parser + Convert test :atom into test string + Fix test name related failure + Fix warning in warning_test.exs + Emit syntax error for invalid fn end, closes #3311 + Soft deprecate booleans in :as, closes #3190 + Deprecate ?\x in favor of simply 0x + Deprecate as: true | false in require/alias + Support \u in strings and char lists for unicode mapping + Also fail on do after , and ; + Allow operators to work still after comments + Remove unnecessary code in Enum.uniq example + Also perform new line checking with structs + Do not add fetch to access + Improve binary docs + Assert key-value pairs in type structs + Raise if heredic terminator in invalid location + Do not change the code semantics in assert/receive + Clean up map access code + Match errors should have higher priority on assert = + Keep proper line info in rewritten/inlined code + Recompile projects if SCM changes, closes #3375 + Fix typo in mix man page + Improve error message when no return value specified in func spec + update error messages, handle non-call first arg to ::: + Line numbers for doctest errors. Fixes issue #3592 + fix a typo in bitwise documentation + Warn when dependencies have conflicing :only + Remove amount of fixture data in deps test, improve coverage + Do not assert on local paths + Improve GenServer docs + (#3603) add more application functions + Handle warns coming from erlang with line set to :none + Improve error messages for `match?` assertions + Erase app directories on full recompile + Ensure only restriction is passed from parent to child + Keep metadata when rewriting assertions + Also store lines in typedoc and ensure @*doc return strings + Update CHANGELOG + fix(Kernel): check arguments on if and unless + Do not inject `:application` key in metadata if it has `nil` value + Cut off "Elixir." prefix for modules in Logger metadata + Correct function argument name + Correct formatting + Update CHANGELOG.md + Add URI.to_string/1 + Update elixir.bat + Update documentation for IEx.configure + ExUnit: Fix warning in test + added docs for :keep option in OptionParser module + implemented iex pid helper, using :c.pid + Add missing character in delete_at code sample + CHANGELOG.md: Add missing period in header + Enum.chunk: correct types in specs + Move Hex loading into its own module + Provide sha512 checking on mix archive.install + Use public key encryption for downloading Hex metadata + Add task for managing public keys + Also download signed rebar packages + Forward all info values to get_module_info + Improve unexpected token error messages + Update CHANGELOG + Raise nice error message if ExUnit.Case was not used + Ensure we don't warn on missing imports if nothing was imported + Fix typespecs for Stream.chunk + Add Stream.transform/4 + Provide detailed description on how to change timeout + Include docs zip in the publish process + Remove reference to GenServer.Behaviour from LocalsTracker + Add and document GenServer callbacks + Improve docs on GenServer.init/1 returning :ignore + Improve Supervisor.start_link/2 spec + Add and document GenEvent callbacks + Perform merging of only in non-shared paths + Update b/1 helper for callback docs + Properly convert captures in Macro.to_string/1 + Document and test :only behaviour, closes #3664 + Update public key + Upgrade travis to check against Erlang 17.5 and 18.0 + Ensure we merge excluded values + Prune more elixir internals in stacktraces + Fix typo in File.cp_r for files (rename tmp to b.txt) + Add support for File.rename (unix-like mv) based on elrang specs + Convert remaining test :atom to strings + Include link to Hex publish + Raise nice error merge when setup returns bad data + Release v1.1.0-beta + Match on proper error on lock format mismatch + made parse() support complete scientific notation + Correct double words + Regex.regex?/1: name unnamed argument and improve docs + Correct indefinite article a/an + Correct descriptions in @doc, @moduledoc, @shortdoc to use Present Continuous + Avoid splitting words that use hyphen + ensure_structure: rephrase wordings + Mix.Hex: improve documentation and code + Add backticks to true, false, nil + correct wording + Correct spaces in iex> + Format raise message consistently + Add arity or correct it for functions that are not being linked in the html docs + spelling `miliseconds` -> `milliseconds` + Allow list of spec in Process.info/2 + Provide a best practices section for use + Do not choke on unknown manifest files + Fix `does` → `do` verbal agreement in special_forms.ex + Add text to all links + Fix markdown files + Correct descriptions in docs to use Present Continuous (2) + Use Title Case and backticks for Erlang and Elixir applications + Add a code of conduct + Update CHANGELOG + Use Mix.shell.error for fprof warning + Fix `responsible to keep` → `responsible for keeping` in env.ex doc + New test cases for exponent marker E and leading + + String: strip functions : mention that ALL leading/trailing `char`s will be removed + Enum: renamed the rarely used `ifnone` argument, in favour of `default` + Mention the Pin Operator in its documentation + Improve assert docs, closes #3709 + Set ex_unit stacktrace to 20 by default, closes #3705 + Only warn apps that come from the current project stack, closes #3710 + Ensure binding() doesn't warn on underscored vars, closes #3708 + Update CHANGELOG + Only warn if no test pattern matches due to umbrella apps + Display pinned vars in the receive assertions + Improve assertion readability in test + Indent pinned vars and received messages in the receive assertions + Inspect.Algebra: Move numbered link off the first line + Standardize use of backticks and quotes; including Error messages and Title Case commands + Fix bugs involving Markdown code + Rephrase @doc for Mix.raise/2 + IO.ANSI: move away link from Summary + Raise right away for Mix tasks with slashes + Replace all occurrences of em-dashes in favour of hyphens + Replace en-dash when it should be hyphen + Correct "truth value" with "truthy value" + Rephrase @moduledoc for Mix + Update CHANGELOG + Ensure File.touch and File.touch! properly work with universal time + Support logo when generating docs + Make it clearer that unimplemented callbacks always stop + Properly close GenServer heredoc + Remove leftover callback docs from GenEvent + Add GenServer.option type + Mention how to write docs for public Mix tasks + Provide reporting e-mail + Use multiline failure message for asser_raise/3 + Add a couple of tests for assert_raise/3 + Prepare for upcoming release + Mix.Dep: show instructions on :nolock and :lockoutdated + Title case Hex + "mix deps.clean": Reword docs to make it consitent with "mix clean" + correct tenses in Agent, Mix.Dep, GenServer docs + ANSI: standardize docs + add links to code of conduct + Improve wording in COC links + Update CONTRIBUTING.md + Default to universal times throughout File + Polish docs for Mix.shell and Mix.Shell.Process + Fix invalid String.to_atom calls + Fetch archive/escript with version in filename + Improve deps.compile error message + Release v1.1.0-rc.0 + Make test that relies on shared dir sync + Add examples using alternate capture/replace syntax + Module.__info__ : correct links + explain String.replace/4 :insert_replaced option + Add Mix recompilation from IEx + Make a distinction between touching and updating the lock manifest + Update release instructions + Stop apps in reverse load order + String: Rename args "str" to "string" + Code.get_docs/2: check for valid doc kind in public function, not in private + Added an example to the to_list function + Add missing after callback in Stream.transform + Add IO.ANSI.clear_line + assert_raise: document that message can be regex + Update doc for Kernel.hd/1 to indicate guard clause utility + `compile_error/3,4` is already imported in `elixir_exp_clauses` + Raise `CompileError` in case of duplicated clauses given for `try` + Raise `CompileError` in case of duplicated clauses given for `receive` + Raise `CompileError` in case of duplicated `do` clauses for `cond` + Raise `CompileError` in case of duplicated `do` clauses for `case` + Ensure suspending flat map does not consume items, closes #3751 + Raise if arity not in 0..255, closes #3754 + Link to the public keys page + Update CHANGELOG + Mention config/config.exs in warning + Ensure we list structs and requires as compile time deps + Make the Access API based on fetch + Release v1.1.0 + Update docs directory + Fix assertion errors with more than 1 pinned var + removed obsolete type option from the GenEvent handler type + Ensure stacktraces are shown on app_path failures + Fix non integer checks in ranges + Release v1.1.1- Update to version v1.0.5: + Ensure we escape config before injecting into escript + Read 4K blocks instead of lines in IO.binread + Add unit test for IO.binread with :all option + Optimize rstrip + Handle corner cases for small strings in rstrp + Ensure we properly underscore acronyms followed by paths + Speed up upcase and downcase for large strings + Ensure blocks do not clobber eex buffer + Only consider outer halts in flat_map when the op is not halt itself + Expand attributes and macros in record extractor + Fix GenEvent detecting module that isn't loaded + Ensure take/1 does not consume more than required + Handle :undefined arity in Logger.Translator + Add more documentation for ~> requirements + Fix Version.pre typespec + Fix to_string for Version with numeric pre + Join pre-release parts with "." + Fix race condition in logger translator test + Merge pull request #3382 from lexmag/string_io-fixes + Update CHANGELOG + Really fix race condition in logger translator test + Rely on loaded_applications instead of running ones + Avoid non-fixed table errors on autocomplete + Delegate to :erlang.binary_to_float on Float.parse/1 + Update CHANGELOG + Add docs for simple one for one + Also document exit reasons + Improve wording + Backport improvements to <<>>' docs + Update to Erlang 18 + Move tests to Erlang 18 which has proper logger behaviour + Translate emulator logged process crashes in 18.0+ + Fix logger translating process exit + fix for Erlang R18.0 changes in maps module + Ensure we also normalize badmap and badkey in rescue + Run badkey and badmap only on 18 + Release v1.0.5- Fix a typo in elixir-doc.spec- Drop docs into separate package- Update to version v1.0.4: + Do not propagate protocol consolidation to children + Clean up ExUnit.Assertions docs + Avoid missing behaviour warnings when compiling erlang files + Add compatibilty with OTP 18 typespec changes + Fixes for Erlang 18.0-rc1 + Update CHANGELOG + Fix doc formatting in ExUnit.Formatter + Wait until test process is down in ExUnit runner + Tag async tests as such + Release v1.0.4h04-ch1d 1717990793  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$  !"#$      !"#$)*+,-./012345  !"#$QRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$1.15.7-150300.7.5.1   elixir-doceex404.htmlEEx.Engine.htmlEEx.SmartEngine.htmlEEx.SyntaxError.htmlEEx.htmlapi-reference.htmldisthandlebars.runtime-NWIB6V2M.jshandlebars.templates-KDPBTEPL.jshtml-CP2A7WXZ.jshtml-elixir-M3TQBNKO.cssinconsolata-latin-400-normal-RGKDDNDD.woff2inconsolata-latin-700-normal-DTS2D7TO.woff2inconsolata-latin-ext-400-normal-K7HVGTP7.woff2inconsolata-latin-ext-700-normal-4MPBLFZC.woff2inconsolata-vietnamese-400-normal-IGQPHHJH.woff2inconsolata-vietnamese-700-normal-LHEGSN35.woff2lato-latin-300-normal-YUMVEFOL.woff2lato-latin-400-normal-W7754I4D.woff2lato-latin-700-normal-2XVSBPG4.woff2lato-latin-ext-300-normal-VPGGJKJL.woff2lato-latin-ext-400-normal-N27NCBWW.woff2lato-latin-ext-700-normal-Q2L5DVMW.woff2merriweather-cyrillic-300-italic-M6KMXZSZ.woff2merriweather-cyrillic-300-normal-7PAAHU3N.woff2merriweather-cyrillic-ext-300-italic-JP3ZEV2P.woff2merriweather-cyrillic-ext-300-normal-5LF5LCEK.woff2merriweather-latin-300-italic-353COS6Q.woff2merriweather-latin-300-normal-RWDJH4FN.woff2merriweather-latin-ext-300-italic-MWCA36KE.woff2merriweather-latin-ext-300-normal-K6L27CZ5.woff2merriweather-vietnamese-300-italic-EHHNZPUO.woff2merriweather-vietnamese-300-normal-U376L4Z4.woff2remixicon-NKANDIL5.woff2search_data-B598EB50.jssidebar_items-0B2B143B.jsdocs_config.jsindex.htmlsearch.htmlelixir404.htmlAccess.htmlAgent.htmlApplication.htmlArgumentError.htmlArithmeticError.htmlAtom.htmlBadArityError.htmlBadBooleanError.htmlBadFunctionError.htmlBadMapError.htmlBadStructError.htmlBase.htmlBehaviour.htmlBitwise.htmlCalendar.ISO.htmlCalendar.TimeZoneDatabase.htmlCalendar.UTCOnlyTimeZoneDatabase.htmlCalendar.htmlCaseClauseError.htmlCode.Fragment.htmlCode.LoadError.htmlCode.htmlCollectable.htmlCompileError.htmlCondClauseError.htmlConfig.Provider.htmlConfig.Reader.htmlConfig.htmlDate.Range.htmlDate.htmlDateTime.htmlDict.htmlDynamicSupervisor.htmlEnum.EmptyError.htmlEnum.OutOfBoundsError.htmlEnum.htmlEnumerable.htmlErlangError.htmlException.htmlFile.CopyError.htmlFile.Error.htmlFile.LinkError.htmlFile.RenameError.htmlFile.Stat.htmlFile.Stream.htmlFile.htmlFloat.htmlFunction.htmlFunctionClauseError.htmlGenEvent.htmlGenServer.htmlHashDict.htmlHashSet.htmlIO.ANSI.htmlIO.Stream.htmlIO.StreamError.htmlIO.htmlInspect.Algebra.htmlInspect.Error.htmlInspect.Opts.htmlInspect.htmlInteger.htmlKernel.ParallelCompiler.htmlKernel.SpecialForms.htmlKernel.TypespecError.htmlKernel.htmlKeyError.htmlKeyword.htmlList.Chars.htmlList.htmlMacro.Env.htmlMacro.htmlMap.htmlMapSet.htmlMatchError.htmlModule.Types.Error.htmlModule.htmlNaiveDateTime.htmlNode.htmlOptionParser.ParseError.htmlOptionParser.htmlPartitionSupervisor.htmlPath.htmlPort.htmlProcess.htmlProtocol.UndefinedError.htmlProtocol.htmlRange.htmlRecord.htmlRegex.CompileError.htmlRegex.htmlRegistry.htmlRuntimeError.htmlSet.htmlStream.htmlString.Chars.htmlString.htmlStringIO.htmlSupervisor.Spec.htmlSupervisor.htmlSyntaxError.htmlSystem.EnvError.htmlSystem.htmlSystemLimitError.htmlTask.Supervisor.htmlTask.htmlTime.htmlTokenMissingError.htmlTryClauseError.htmlTuple.htmlURI.Error.htmlURI.htmlUndefinedFunctionError.htmlUnicodeConversionError.htmlVersion.InvalidRequirementError.htmlVersion.InvalidVersionError.htmlVersion.Requirement.htmlVersion.htmlWithClauseError.htmlapi-reference.htmlchangelog.htmlcompatibility-and-deprecations.htmldisthandlebars.runtime-NWIB6V2M.jshandlebars.templates-KDPBTEPL.jshtml-CP2A7WXZ.jshtml-elixir-M3TQBNKO.cssinconsolata-latin-400-normal-RGKDDNDD.woff2inconsolata-latin-700-normal-DTS2D7TO.woff2inconsolata-latin-ext-400-normal-K7HVGTP7.woff2inconsolata-latin-ext-700-normal-4MPBLFZC.woff2inconsolata-vietnamese-400-normal-IGQPHHJH.woff2inconsolata-vietnamese-700-normal-LHEGSN35.woff2lato-latin-300-normal-YUMVEFOL.woff2lato-latin-400-normal-W7754I4D.woff2lato-latin-700-normal-2XVSBPG4.woff2lato-latin-ext-300-normal-VPGGJKJL.woff2lato-latin-ext-400-normal-N27NCBWW.woff2lato-latin-ext-700-normal-Q2L5DVMW.woff2merriweather-cyrillic-300-italic-M6KMXZSZ.woff2merriweather-cyrillic-300-normal-7PAAHU3N.woff2merriweather-cyrillic-ext-300-italic-JP3ZEV2P.woff2merriweather-cyrillic-ext-300-normal-5LF5LCEK.woff2merriweather-latin-300-italic-353COS6Q.woff2merriweather-latin-300-normal-RWDJH4FN.woff2merriweather-latin-ext-300-italic-MWCA36KE.woff2merriweather-latin-ext-300-normal-K6L27CZ5.woff2merriweather-vietnamese-300-italic-EHHNZPUO.woff2merriweather-vietnamese-300-normal-U376L4Z4.woff2remixicon-NKANDIL5.woff2search_data-AFC4DB42.jssidebar_items-0370DFD7.jsdocs_config.jsindex.htmllibrary-guidelines.htmlnaming-conventions.htmloperators.htmlpatterns-and-guards.htmlsearch.htmlsyntax-reference.htmltypespecs.htmlunicode-syntax.htmlwriting-documentation.htmlex_unit404.htmlExUnit.AssertionError.htmlExUnit.Assertions.htmlExUnit.Callbacks.htmlExUnit.CaptureIO.htmlExUnit.CaptureLog.htmlExUnit.Case.htmlExUnit.CaseTemplate.htmlExUnit.DocTest.Error.htmlExUnit.DocTest.htmlExUnit.DuplicateDescribeError.htmlExUnit.DuplicateTestError.htmlExUnit.Filters.htmlExUnit.Formatter.htmlExUnit.MultiError.htmlExUnit.Test.htmlExUnit.TestModule.htmlExUnit.TimeoutError.htmlExUnit.htmlapi-reference.htmldisthandlebars.runtime-NWIB6V2M.jshandlebars.templates-KDPBTEPL.jshtml-CP2A7WXZ.jshtml-elixir-M3TQBNKO.cssinconsolata-latin-400-normal-RGKDDNDD.woff2inconsolata-latin-700-normal-DTS2D7TO.woff2inconsolata-latin-ext-400-normal-K7HVGTP7.woff2inconsolata-latin-ext-700-normal-4MPBLFZC.woff2inconsolata-vietnamese-400-normal-IGQPHHJH.woff2inconsolata-vietnamese-700-normal-LHEGSN35.woff2lato-latin-300-normal-YUMVEFOL.woff2lato-latin-400-normal-W7754I4D.woff2lato-latin-700-normal-2XVSBPG4.woff2lato-latin-ext-300-normal-VPGGJKJL.woff2lato-latin-ext-400-normal-N27NCBWW.woff2lato-latin-ext-700-normal-Q2L5DVMW.woff2merriweather-cyrillic-300-italic-M6KMXZSZ.woff2merriweather-cyrillic-300-normal-7PAAHU3N.woff2merriweather-cyrillic-ext-300-italic-JP3ZEV2P.woff2merriweather-cyrillic-ext-300-normal-5LF5LCEK.woff2merriweather-latin-300-italic-353COS6Q.woff2merriweather-latin-300-normal-RWDJH4FN.woff2merriweather-latin-ext-300-italic-MWCA36KE.woff2merriweather-latin-ext-300-normal-K6L27CZ5.woff2merriweather-vietnamese-300-italic-EHHNZPUO.woff2merriweather-vietnamese-300-normal-U376L4Z4.woff2remixicon-NKANDIL5.woff2search_data-9177C058.jssidebar_items-BEA153EB.jsdocs_config.jsindex.htmlsearch.htmliex404.htmlIEx.Helpers.htmlIEx.Info.htmlIEx.Pry.htmlIEx.Server.htmlIEx.htmlapi-reference.htmldisthandlebars.runtime-NWIB6V2M.jshandlebars.templates-KDPBTEPL.jshtml-CP2A7WXZ.jshtml-elixir-M3TQBNKO.cssinconsolata-latin-400-normal-RGKDDNDD.woff2inconsolata-latin-700-normal-DTS2D7TO.woff2inconsolata-latin-ext-400-normal-K7HVGTP7.woff2inconsolata-latin-ext-700-normal-4MPBLFZC.woff2inconsolata-vietnamese-400-normal-IGQPHHJH.woff2inconsolata-vietnamese-700-normal-LHEGSN35.woff2lato-latin-300-normal-YUMVEFOL.woff2lato-latin-400-normal-W7754I4D.woff2lato-latin-700-normal-2XVSBPG4.woff2lato-latin-ext-300-normal-VPGGJKJL.woff2lato-latin-ext-400-normal-N27NCBWW.woff2lato-latin-ext-700-normal-Q2L5DVMW.woff2merriweather-cyrillic-300-italic-M6KMXZSZ.woff2merriweather-cyrillic-300-normal-7PAAHU3N.woff2merriweather-cyrillic-ext-300-italic-JP3ZEV2P.woff2merriweather-cyrillic-ext-300-normal-5LF5LCEK.woff2merriweather-latin-300-italic-353COS6Q.woff2merriweather-latin-300-normal-RWDJH4FN.woff2merriweather-latin-ext-300-italic-MWCA36KE.woff2merriweather-latin-ext-300-normal-K6L27CZ5.woff2merriweather-vietnamese-300-italic-EHHNZPUO.woff2merriweather-vietnamese-300-normal-U376L4Z4.woff2remixicon-NKANDIL5.woff2search_data-049D037F.jssidebar_items-74AFE6AB.jsdocs_config.jsindex.htmlsearch.htmllogger404.htmlLogger.Backends.Console.htmlLogger.Formatter.htmlLogger.Translator.htmlLogger.htmlapi-reference.htmldisthandlebars.runtime-NWIB6V2M.jshandlebars.templates-KDPBTEPL.jshtml-CP2A7WXZ.jshtml-elixir-M3TQBNKO.cssinconsolata-latin-400-normal-RGKDDNDD.woff2inconsolata-latin-700-normal-DTS2D7TO.woff2inconsolata-latin-ext-400-normal-K7HVGTP7.woff2inconsolata-latin-ext-700-normal-4MPBLFZC.woff2inconsolata-vietnamese-400-normal-IGQPHHJH.woff2inconsolata-vietnamese-700-normal-LHEGSN35.woff2lato-latin-300-normal-YUMVEFOL.woff2lato-latin-400-normal-W7754I4D.woff2lato-latin-700-normal-2XVSBPG4.woff2lato-latin-ext-300-normal-VPGGJKJL.woff2lato-latin-ext-400-normal-N27NCBWW.woff2lato-latin-ext-700-normal-Q2L5DVMW.woff2merriweather-cyrillic-300-italic-M6KMXZSZ.woff2merriweather-cyrillic-300-normal-7PAAHU3N.woff2merriweather-cyrillic-ext-300-italic-JP3ZEV2P.woff2merriweather-cyrillic-ext-300-normal-5LF5LCEK.woff2merriweather-latin-300-italic-353COS6Q.woff2merriweather-latin-300-normal-RWDJH4FN.woff2merriweather-latin-ext-300-italic-MWCA36KE.woff2merriweather-latin-ext-300-normal-K6L27CZ5.woff2merriweather-vietnamese-300-italic-EHHNZPUO.woff2merriweather-vietnamese-300-normal-U376L4Z4.woff2remixicon-NKANDIL5.woff2search_data-49478EBC.jssidebar_items-1E900299.jsdocs_config.jsindex.htmlsearch.htmlmix404.htmlMix.ElixirVersionError.htmlMix.Error.htmlMix.Generator.htmlMix.InvalidTaskError.htmlMix.NoProjectError.htmlMix.NoTaskError.htmlMix.Project.htmlMix.Release.htmlMix.SCM.htmlMix.Shell.IO.htmlMix.Shell.Process.htmlMix.Shell.Quiet.htmlMix.Shell.htmlMix.Task.Compiler.Diagnostic.htmlMix.Task.Compiler.htmlMix.Task.htmlMix.Tasks.App.Config.htmlMix.Tasks.App.Start.htmlMix.Tasks.App.Tree.htmlMix.Tasks.Archive.Build.htmlMix.Tasks.Archive.Check.htmlMix.Tasks.Archive.Install.htmlMix.Tasks.Archive.Uninstall.htmlMix.Tasks.Archive.htmlMix.Tasks.Clean.htmlMix.Tasks.Cmd.htmlMix.Tasks.Compile.App.htmlMix.Tasks.Compile.Elixir.htmlMix.Tasks.Compile.Erlang.htmlMix.Tasks.Compile.Leex.htmlMix.Tasks.Compile.Protocols.htmlMix.Tasks.Compile.Yecc.htmlMix.Tasks.Compile.htmlMix.Tasks.Deps.Clean.htmlMix.Tasks.Deps.Compile.htmlMix.Tasks.Deps.Get.htmlMix.Tasks.Deps.Loadpaths.htmlMix.Tasks.Deps.Precompile.htmlMix.Tasks.Deps.Tree.htmlMix.Tasks.Deps.Unlock.htmlMix.Tasks.Deps.Update.htmlMix.Tasks.Deps.htmlMix.Tasks.Do.htmlMix.Tasks.Escript.Build.htmlMix.Tasks.Escript.Install.htmlMix.Tasks.Escript.Uninstall.htmlMix.Tasks.Escript.htmlMix.Tasks.Eval.htmlMix.Tasks.Format.htmlMix.Tasks.Help.htmlMix.Tasks.Iex.htmlMix.Tasks.Loadconfig.htmlMix.Tasks.Loadpaths.htmlMix.Tasks.Local.Hex.htmlMix.Tasks.Local.PublicKeys.htmlMix.Tasks.Local.Rebar.htmlMix.Tasks.Local.htmlMix.Tasks.New.htmlMix.Tasks.Profile.Cprof.htmlMix.Tasks.Profile.Eprof.htmlMix.Tasks.Profile.Fprof.htmlMix.Tasks.Release.Init.htmlMix.Tasks.Release.htmlMix.Tasks.Run.htmlMix.Tasks.Test.Coverage.htmlMix.Tasks.Test.htmlMix.Tasks.Xref.htmlMix.htmlapi-reference.htmldisthandlebars.runtime-NWIB6V2M.jshandlebars.templates-KDPBTEPL.jshtml-CP2A7WXZ.jshtml-elixir-M3TQBNKO.cssinconsolata-latin-400-normal-RGKDDNDD.woff2inconsolata-latin-700-normal-DTS2D7TO.woff2inconsolata-latin-ext-400-normal-K7HVGTP7.woff2inconsolata-latin-ext-700-normal-4MPBLFZC.woff2inconsolata-vietnamese-400-normal-IGQPHHJH.woff2inconsolata-vietnamese-700-normal-LHEGSN35.woff2lato-latin-300-normal-YUMVEFOL.woff2lato-latin-400-normal-W7754I4D.woff2lato-latin-700-normal-2XVSBPG4.woff2lato-latin-ext-300-normal-VPGGJKJL.woff2lato-latin-ext-400-normal-N27NCBWW.woff2lato-latin-ext-700-normal-Q2L5DVMW.woff2merriweather-cyrillic-300-italic-M6KMXZSZ.woff2merriweather-cyrillic-300-normal-7PAAHU3N.woff2merriweather-cyrillic-ext-300-italic-JP3ZEV2P.woff2merriweather-cyrillic-ext-300-normal-5LF5LCEK.woff2merriweather-latin-300-italic-353COS6Q.woff2merriweather-latin-300-normal-RWDJH4FN.woff2merriweather-latin-ext-300-italic-MWCA36KE.woff2merriweather-latin-ext-300-normal-K6L27CZ5.woff2merriweather-vietnamese-300-italic-EHHNZPUO.woff2merriweather-vietnamese-300-normal-U376L4Z4.woff2remixicon-NKANDIL5.woff2search_data-CE80C94A.jssidebar_items-ACCD2CD8.jsdocs_config.jsindex.htmlsearch.htmlelixir115-docLICENSE/usr/share/doc/packages//usr/share/doc/packages/elixir-doc//usr/share/doc/packages/elixir-doc/eex//usr/share/doc/packages/elixir-doc/eex/dist//usr/share/doc/packages/elixir-doc/elixir//usr/share/doc/packages/elixir-doc/elixir/dist//usr/share/doc/packages/elixir-doc/ex_unit//usr/share/doc/packages/elixir-doc/ex_unit/dist//usr/share/doc/packages/elixir-doc/iex//usr/share/doc/packages/elixir-doc/iex/dist//usr/share/doc/packages/elixir-doc/logger//usr/share/doc/packages/elixir-doc/logger/dist//usr/share/doc/packages/elixir-doc/mix//usr/share/doc/packages/elixir-doc/mix/dist//usr/share/licenses//usr/share/licenses/elixir115-doc/-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -gobs://build.suse.de/SUSE:Maintenance:34194/SUSE_SLE-15-SP3_Update/6a3cd7affdd9e9f1c8d3781d9e9a0702-elixir115.SUSE_SLE-15-SP3_Updatedrpmxz5noarch-suse-linux      directoryHTML document, UTF-8 Unicode textHTML document, UTF-8 Unicode text, with very long linesASCII text, with very long linesHTML document, ASCII text, with very long linesWeb Open Font Format (Version 2), TrueType, length 16244, version 1.0Web Open Font Format (Version 2), TrueType, length 16368, version 1.0Web Open Font Format (Version 2), TrueType, length 14772, version 1.0Web Open Font Format (Version 2), TrueType, length 14908, version 1.0Web Open Font Format (Version 2), TrueType, length 6836, version 1.0Web Open Font Format (Version 2), TrueType, length 6944, version 1.0Web Open Font Format (Version 2), TrueType, length 23236, version 1.0Web Open Font Format (Version 2), TrueType, length 23580, version 1.0Web Open Font Format (Version 2), TrueType, length 23040, version 1.0Web Open Font Format (Version 2), TrueType, length 5624, version 1.0Web Open Font Format (Version 2), TrueType, length 5472, version 1.0Web Open Font Format (Version 2), TrueType, length 5368, version 1.0Web Open Font Format (Version 2), TrueType, length 15244, version 1.0Web Open Font Format (Version 2), TrueType, length 15084, version 1.0Web Open Font Format (Version 2), TrueType, length 20308, version 1.0Web Open Font Format (Version 2), TrueType, length 19320, version 1.0Web Open Font Format (Version 2), TrueType, length 19720, version 1.0Web Open Font Format (Version 2), TrueType, length 19752, version 1.0Web Open Font Format (Version 2), TrueType, length 18676, version 1.0Web Open Font Format (Version 2), TrueType, length 18688, version 1.0Web Open Font Format (Version 2), TrueType, length 7996, version 1.0Web Open Font Format (Version 2), TrueType, length 7796, version 1.0Web Open Font Format (Version 2), TrueType, length 1956, version 1.0ASCII text, with very long lines, with no line terminatorsASCII textUTF-8 Unicode text, with very long lines, with no line terminatorsȻ"p^$yutf-8fab930126583b3ae4c66262adb614b9844e08069595757f9b21c4fd1c2b6114d? 7zXZ !t/A]"k%>3Jjjϲ P&/,i5|-iRγ=U~sy+難IIwks}q`ޘlT.=ִKr=m^Y;3m>d=ݐOb q:Rm#tDOw?Iu PP Aj/R a,;s7/'@uU NdWev73['…XB_zi=D-2|Q)N? dJO"qaZTsT%:ݣ*DیPt.ѱe/Tz^KGv6vC45@H]Q+SǛ`|Uxa+MkHPQ^CWq$ƿbxldBFoVf'N]I'@|Nl&a2"F4Kz'}a׏F,%j\92;փF͹l\quSzOr /cDŽ̾iQ–ArLeuv*o 4}ӵ$`VsNۮX9´ЭmUm2QuQcIMt;ǎqw6W <]VU#8=.U?hg'X¬΁.#eVfߤR% uy 9KrOZOzv#q|C{p@;}WS (pM`[qRUjƦR#2fff p &yF!IFo{H^8TuP04 f!8)cnUnTA# ' nS;I_V}G;B .pȵ◼'*_:d \qhpH#(mxU}:?LyxBW@;Tsʨ <;-2?G2502<%sе$ϊVEYǣ#$8@mޒȿa/2FidE'JÚP5 5>] C旫PСY U`WԿ@1LSܫ0;+.+[oQfr}ŸD1~Hh3^X'hI}뼾!{溘;6}=ܛK?Y|׫K6#nɶ"t=%' ԔLFH km 4j¤ ˳"/TjAZ8ʊnF@xn"Q׽p8?.SPWvǼ.b3&4)a` U7ٍ)1b3 1Yo{:y9]û/>}~)kUJ7YCA =E(WmJ^ԨC_y)4 #jw<@,8=i9|niB o`Glw&$FOlCnw'npDSۭJEKtCB \P Q+>M)1G#XDlU+o{<(0>uIaʣ ʨ=u^kxI2MG@Qrď\6x5/RIR9UAA3+aѰqI%Q'5`]!7o~v4B _8(KroZ*PI/]f+Mn?lؚy#o3_&bFyK3&%[H-c3>2S=׬FTZDDVb5Kl%hӢ]Jbu?R)`1CC:6ܬBdS[V겳%'}#cn)&cKp-jQ@3]g >RHvP@X8eǙJ5/PL1W p+3JnD?Hv=R$k)D_[\2}Sx丢cF+F_.g(*Nߥ,Q 5<=0'hG%᡻W]T{u"mpHGNಫ\k9/NT奘RPo{$0Z("Mo)}۫4 -܃7gg; 'qCnwcC-?p`(gմts*qO,B/6\FO3q}M%ց/~/h_BH($JVކNZ~DqBpS0-{&◡op6Wr`ʕ#9㼮||hU)ONJ-R7ul_(ˁ31FLCAicv Z \O"h.R=x6"G6ڿTRS zqwN NSXDwf1Qi1j1BGCƂn# N|Z\iP4*4lq ݘ+{ୣljQXu\|HB׍!iYb\v}Sld$UpUƠ%67c@ En@Kr[xuPl`NciA!@ BV'1BOGlcsZV\SP5BT7e&|vq5R $~3p"{G.v=+g3ywP(6XɃ8 Z|AWF+NX($PL=oϬ}GxGWIįl-Y L^/EDkቕТr{䩶Ѕ-e)_ˈf](dOB|RSt'5ܔIXr!ě)N3BhZ@+76b*} O|n6M\˳J_bE$%aGغ6c&3p&6Ssf%* w`ᵛܒZGϥ@goRl9j;YFubwl&^ >%ʃ5{咶G;䗲Yl_(̾d$iUބׇ?Rǫ_2*"#"=3[bMW2|Ѡ}?~XQ] L}=/D9cVLBO<@\t;WQѮΝioA#73St" -|kɲ=7+` ".HIFDvy߯ѯ,6u NO^BJFryN!$N\)s O+f'Nlg}3aQ}F*ᇛzG6])sh zA^ĠS>7uzJMSM'v YZ