Current section
Files
Jump to
Current section
Files
CHANGELOG.md
# Changelog
## [0.7.0](https://github.com/clojerl/clojerl/tree/0.7.0)
[Full Changelog](https://github.com/clojerl/clojerl/compare/0.6.0...0.7.0)
**Implemented enhancements:**
- Remove rebar3 hook for 'clojerl compile' command [\#764](https://github.com/clojerl/clojerl/issues/764)
- Imitate support from ClojureScript to encode/decode into/from Erlang value [\#759](https://github.com/clojerl/clojerl/issues/759)
- Improve error reporting for erl-binary\* [\#752](https://github.com/clojerl/clojerl/issues/752)
- clojure.core/load-lib: include original stacktrace when rethrowing error [\#749](https://github.com/clojerl/clojerl/issues/749)
- Compiler option to output BEAM assembly [\#730](https://github.com/clojerl/clojerl/issues/730)
**Fixed bugs:**
- REPL started from an Erlang shell outputs extra characters [\#762](https://github.com/clojerl/clojerl/issues/762)
- Starting a REPL fails when calling clojure.main/main from Erlang shell [\#758](https://github.com/clojerl/clojerl/issues/758)
- Binary pattern fails when using a variable for :size [\#755](https://github.com/clojerl/clojerl/issues/755)
- clojure.edn/read fails when using a PushbackReader [\#747](https://github.com/clojerl/clojerl/issues/747)
- Can't compile on Windows [\#745](https://github.com/clojerl/clojerl/issues/745)
- bin/clojerl script fails in Linux [\#741](https://github.com/clojerl/clojerl/issues/741)
- Error when reloading namespace from a file that refers a var in another namespace [\#732](https://github.com/clojerl/clojerl/issues/732)
- clojerl application should comply with OTP guidelines [\#728](https://github.com/clojerl/clojerl/issues/728)
**Closed issues:**
- Compile with Erlang/OTP 23 [\#753](https://github.com/clojerl/clojerl/issues/753)
- Improve performance of clojure.core/last [\#738](https://github.com/clojerl/clojerl/issues/738)
- Pin rebar3\_clojerl version before creating the next release [\#723](https://github.com/clojerl/clojerl/issues/723)
- Reducers [\#248](https://github.com/clojerl/clojerl/issues/248)
**Merged pull requests:**
- \[\#764\] Remove pre-hook [\#765](https://github.com/clojerl/clojerl/pull/765) ([jfacorro](https://github.com/jfacorro))
- \[\#762\] REPL from Erlang shell outputs extra characters [\#763](https://github.com/clojerl/clojerl/pull/763) ([jfacorro](https://github.com/jfacorro))
- \[\#759\] Erlang and Clojure encoders [\#761](https://github.com/clojerl/clojerl/pull/761) ([jfacorro](https://github.com/jfacorro))
- \[\#758\] Starting REPL from shell fails [\#760](https://github.com/clojerl/clojerl/pull/760) ([jfacorro](https://github.com/jfacorro))
- \[\#753\] Compile with OTP 23 [\#757](https://github.com/clojerl/clojerl/pull/757) ([jfacorro](https://github.com/jfacorro))
- \[\#755\] Don't parse :size as a pattern [\#756](https://github.com/clojerl/clojerl/pull/756) ([jfacorro](https://github.com/jfacorro))
- \[\#752\] Improve error reporting for erl-binary\* [\#754](https://github.com/clojerl/clojerl/pull/754) ([jfacorro](https://github.com/jfacorro))
- \[\#749\] Provide stacktrace to throw [\#751](https://github.com/clojerl/clojerl/pull/751) ([jfacorro](https://github.com/jfacorro))
- \[\#749\] Include original stacktrace when throwing error [\#750](https://github.com/clojerl/clojerl/pull/750) ([jfacorro](https://github.com/jfacorro))
- \[\#747\] Set the io-reader option when calling clj\_edn/read [\#748](https://github.com/clojerl/clojerl/pull/748) ([jfacorro](https://github.com/jfacorro))
- \[\#745\] Munge namespace name for multimethod's map [\#746](https://github.com/clojerl/clojerl/pull/746) ([jfacorro](https://github.com/jfacorro))
- Improve README [\#743](https://github.com/clojerl/clojerl/pull/743) ([jfacorro](https://github.com/jfacorro))
- \[\#741\] Use pattern matching in case [\#742](https://github.com/clojerl/clojerl/pull/742) ([jfacorro](https://github.com/jfacorro))
- \[\#248\] reducers benchmarks [\#740](https://github.com/clojerl/clojerl/pull/740) ([jfacorro](https://github.com/jfacorro))
- \[\#738\] Improve performance of clojure.core/last [\#739](https://github.com/clojerl/clojerl/pull/739) ([jfacorro](https://github.com/jfacorro))
- \[\#248\] Implement clojerl.Subvec and clojerl.Vector.Seq [\#737](https://github.com/clojerl/clojerl/pull/737) ([jfacorro](https://github.com/jfacorro))
- \[\#284\] Rename the callback functions for marker protocols and remove their implementations [\#736](https://github.com/clojerl/clojerl/pull/736) ([jfacorro](https://github.com/jfacorro))
- \[\#248\] Reducers [\#735](https://github.com/clojerl/clojerl/pull/735) ([jfacorro](https://github.com/jfacorro))
- \[\#732\] Fix bug when checking for overriden vars [\#733](https://github.com/clojerl/clojerl/pull/733) ([jfacorro](https://github.com/jfacorro))
- \[\#730\] Add option to compile to BEAM assembly [\#731](https://github.com/clojerl/clojerl/pull/731) ([jfacorro](https://github.com/jfacorro))
- \[\#728\] Return top level supervisor pid [\#729](https://github.com/clojerl/clojerl/pull/729) ([jfacorro](https://github.com/jfacorro))
## [0.6.0](https://github.com/clojerl/clojerl/tree/0.6.0) (2020-03-22)
[Full Changelog](https://github.com/clojerl/clojerl/compare/0.5.1...0.6.0)
**Implemented enhancements:**
- Improve performace of getting from a Clojure map [\#714](https://github.com/clojerl/clojerl/issues/714)
- case thrown "No match" error - stacktrace doesn't show where the violating code \(plus line number\) is in [\#711](https://github.com/clojerl/clojerl/issues/711)
- Add line number of where compile error occured [\#706](https://github.com/clojerl/clojerl/issues/706)
- clj\_module should remove modules when process that loaded them dies [\#704](https://github.com/clojerl/clojerl/issues/704)
- Output .core file to the same dir as .beam [\#694](https://github.com/clojerl/clojerl/issues/694)
- Compile to native code [\#310](https://github.com/clojerl/clojerl/issues/310)
**Fixed bugs:**
- clje.user ns in REPL doesn't refer clojure.core when started from clean project [\#726](https://github.com/clojerl/clojerl/issues/726)
- Wrong implementation of clojerl.Var:has\_root/1 [\#718](https://github.com/clojerl/clojerl/issues/718)
- mix-collection-hash and hash of unordered set must be equal [\#702](https://github.com/clojerl/clojerl/issues/702)
- Create clje.user ns during initialization [\#699](https://github.com/clojerl/clojerl/issues/699)
- in-ns not available in namespace created with in-ns [\#697](https://github.com/clojerl/clojerl/issues/697)
- Starting socket REPL server prints unnecessary messages [\#691](https://github.com/clojerl/clojerl/issues/691)
- Pattern matching ignores existing bound symbol [\#684](https://github.com/clojerl/clojerl/issues/684)
- Item in lazy sequence processed twice when reducing [\#682](https://github.com/clojerl/clojerl/issues/682)
- Unreadable error message when calling undefined local function [\#679](https://github.com/clojerl/clojerl/issues/679)
- sort and sort-by have unexpected behavior with compare function [\#670](https://github.com/clojerl/clojerl/issues/670)
- \[\#684\] List of known variable must be ordset when emitting pattern [\#686](https://github.com/clojerl/clojerl/pull/686) ([jfacorro](https://github.com/jfacorro))
**Closed issues:**
- Improve record operations performance [\#720](https://github.com/clojerl/clojerl/issues/720)
- Improve multimethod performance [\#716](https://github.com/clojerl/clojerl/issues/716)
- Implement an Erlang Clojure API [\#681](https://github.com/clojerl/clojerl/issues/681)
- Generate cover reports [\#677](https://github.com/clojerl/clojerl/issues/677)
- Create issue templates [\#673](https://github.com/clojerl/clojerl/issues/673)
- Inquiry: can Cider IDE be used with Clojerl? [\#671](https://github.com/clojerl/clojerl/issues/671)
- State of Clojerl? [\#667](https://github.com/clojerl/clojerl/issues/667)
- Xenial in Travis CI doesn't support OTP 18 [\#663](https://github.com/clojerl/clojerl/issues/663)
- Use Erlang macros from Clojerl code [\#662](https://github.com/clojerl/clojerl/issues/662)
- Better behaviour support [\#661](https://github.com/clojerl/clojerl/issues/661)
- Refs, Agents and Atoms [\#117](https://github.com/clojerl/clojerl/issues/117)
- Delay, Future and Promise [\#90](https://github.com/clojerl/clojerl/issues/90)
**Merged pull requests:**
- Prepare release 0.6.0 [\#727](https://github.com/clojerl/clojerl/pull/727) ([jfacorro](https://github.com/jfacorro))
- \[\#310\] Native code compilation [\#722](https://github.com/clojerl/clojerl/pull/722) ([jfacorro](https://github.com/jfacorro))
- \[\#720\] Record ops performance [\#721](https://github.com/clojerl/clojerl/pull/721) ([jfacorro](https://github.com/jfacorro))
- \[\#718\] Fix implementation and update tests for clojerl.Var:has\_root/1 [\#719](https://github.com/clojerl/clojerl/pull/719) ([jfacorro](https://github.com/jfacorro))
- \[\#716\] Improve multimethod performance [\#717](https://github.com/clojerl/clojerl/pull/717) ([jfacorro](https://github.com/jfacorro))
- \[\#714\] Improve map get performance [\#715](https://github.com/clojerl/clojerl/pull/715) ([jfacorro](https://github.com/jfacorro))
- \[\#711\] Stack shows wrong location for error [\#713](https://github.com/clojerl/clojerl/pull/713) ([jfacorro](https://github.com/jfacorro))
- \[\#706\] Report location of error during macroexpansion [\#712](https://github.com/clojerl/clojerl/pull/712) ([jfacorro](https://github.com/jfacorro))
- Add Dockerfile and publish the official Docker image [\#710](https://github.com/clojerl/clojerl/pull/710) ([abhi18av](https://github.com/abhi18av))
- \[\#707\] Google group and working link to Slack [\#709](https://github.com/clojerl/clojerl/pull/709) ([jfacorro](https://github.com/jfacorro))
- \[\#707\] Include link to slack channel [\#708](https://github.com/clojerl/clojerl/pull/708) ([jfacorro](https://github.com/jfacorro))
- \[\#704\] Remove clj\_module:remove/1, monitor compiling process and cleanup when it dies [\#705](https://github.com/clojerl/clojerl/pull/705) ([jfacorro](https://github.com/jfacorro))
- \[\#702\] Fix hash implementation for sets [\#703](https://github.com/clojerl/clojerl/pull/703) ([jfacorro](https://github.com/jfacorro))
- \[\#681\] Clojerl API [\#701](https://github.com/clojerl/clojerl/pull/701) ([jfacorro](https://github.com/jfacorro))
- \[\#699\] Create clje.user on init [\#700](https://github.com/clojerl/clojerl/pull/700) ([jfacorro](https://github.com/jfacorro))
- \[\#697\] Always resolve in-ns and ns [\#698](https://github.com/clojerl/clojerl/pull/698) ([jfacorro](https://github.com/jfacorro))
- \[\#694\] Output .core file to the same dir as specified for .beam [\#695](https://github.com/clojerl/clojerl/pull/695) ([jfacorro](https://github.com/jfacorro))
- \[\#684\] Use name of shadowed local in pattern matching [\#693](https://github.com/clojerl/clojerl/pull/693) ([jfacorro](https://github.com/jfacorro))
- \[\#691\] Remove printed messages [\#692](https://github.com/clojerl/clojerl/pull/692) ([jfacorro](https://github.com/jfacorro))
- Use var specific str function [\#690](https://github.com/clojerl/clojerl/pull/690) ([jfacorro](https://github.com/jfacorro))
- \[\#117\] Agents [\#688](https://github.com/clojerl/clojerl/pull/688) ([jfacorro](https://github.com/jfacorro))
- \[\#684\] Bound value not used in pattern matching [\#685](https://github.com/clojerl/clojerl/pull/685) ([jfacorro](https://github.com/jfacorro))
- \[\#682\] Remove IReduce implementation from clojerl.Cons [\#683](https://github.com/clojerl/clojerl/pull/683) ([jfacorro](https://github.com/jfacorro))
- \[\#679\] Emit a remote call to the var when the arity used does not exist [\#680](https://github.com/clojerl/clojerl/pull/680) ([jfacorro](https://github.com/jfacorro))
- \[\#677\] Generate cover reports [\#678](https://github.com/clojerl/clojerl/pull/678) ([jfacorro](https://github.com/jfacorro))
- \[\#670\] Fix handling of compare functions [\#676](https://github.com/clojerl/clojerl/pull/676) ([jfacorro](https://github.com/jfacorro))
- \[\#90\] delay future promise [\#675](https://github.com/clojerl/clojerl/pull/675) ([jfacorro](https://github.com/jfacorro))
- \[\#673\] Add issue templates [\#674](https://github.com/clojerl/clojerl/pull/674) ([jfacorro](https://github.com/jfacorro))
- \[\#661\] Erlang behaviour tests [\#669](https://github.com/clojerl/clojerl/pull/669) ([jfacorro](https://github.com/jfacorro))
- \[\#667\] Make clojerl.org link more visible in README [\#668](https://github.com/clojerl/clojerl/pull/668) ([jfacorro](https://github.com/jfacorro))
- Bump OTP version to 22.1 [\#666](https://github.com/clojerl/clojerl/pull/666) ([robertoaloi](https://github.com/robertoaloi))
- \[Closes \#661\] behaviours [\#665](https://github.com/clojerl/clojerl/pull/665) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#663\] Specify trusty [\#664](https://github.com/clojerl/clojerl/pull/664) ([jfacorro](https://github.com/jfacorro))
## [0.5.1](https://github.com/clojerl/clojerl/tree/0.5.1) (2019-07-28)
[Full Changelog](https://github.com/clojerl/clojerl/compare/0.5.0...0.5.1)
**Implemented enhancements:**
- String could implement the ISeq and IColl protocols [\#648](https://github.com/clojerl/clojerl/issues/648)
- rlwrap is not available in MINGW64 [\#642](https://github.com/clojerl/clojerl/issues/642)
- Implement Core Erlang interpreter to avoid generating modules when evaling [\#406](https://github.com/clojerl/clojerl/issues/406)
**Fixed bugs:**
- Avoid incrementing the atom count [\#659](https://github.com/clojerl/clojerl/issues/659)
- bin/clojerl does not work on MINGW64 [\#641](https://github.com/clojerl/clojerl/issues/641)
**Closed issues:**
- Use pre provider\_hook from latest rebar3\_clojerl [\#656](https://github.com/clojerl/clojerl/issues/656)
- Publish as a hex package [\#652](https://github.com/clojerl/clojerl/issues/652)
- StructMaps [\#328](https://github.com/clojerl/clojerl/issues/328)
- Implement 'Map namespace syntax' [\#325](https://github.com/clojerl/clojerl/issues/325)
**Merged pull requests:**
- \[Closes \#659\] Reset gensym id in top level reader functions just before reading forms [\#660](https://github.com/clojerl/clojerl/pull/660) ([jfacorro](https://github.com/jfacorro))
- \[\#406\] core erlang interpreter [\#658](https://github.com/clojerl/clojerl/pull/658) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#656\] use pre provider hook [\#657](https://github.com/clojerl/clojerl/pull/657) ([jfacorro](https://github.com/jfacorro))
- \[\#652\] Hex badge link [\#655](https://github.com/clojerl/clojerl/pull/655) ([jfacorro](https://github.com/jfacorro))
- \[\#652\] Useful links in clojerl.app.src [\#654](https://github.com/clojerl/clojerl/pull/654) ([jfacorro](https://github.com/jfacorro))
- \[\#652\] Modify clojerl.app.src to be able to publish to package [\#653](https://github.com/clojerl/clojerl/pull/653) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#325\] Map namespace syntax [\#650](https://github.com/clojerl/clojerl/pull/650) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#648\] StringSeq [\#649](https://github.com/clojerl/clojerl/pull/649) ([jfacorro](https://github.com/jfacorro))
- Update rebar3\_clojerl plugin [\#647](https://github.com/clojerl/clojerl/pull/647) ([jfacorro](https://github.com/jfacorro))
## [0.5.0](https://github.com/clojerl/clojerl/tree/0.5.0) (2019-06-16)
[Full Changelog](https://github.com/clojerl/clojerl/compare/0.4.1...0.5.0)
**Implemented enhancements:**
- Improve performance of calling anonymous fns [\#631](https://github.com/clojerl/clojerl/issues/631)
- Cycle, Iterate and Repeat [\#630](https://github.com/clojerl/clojerl/issues/630)
- Experiment with Clojure vector implementation [\#628](https://github.com/clojerl/clojerl/issues/628)
- Run benchmarks comparing them against Clojure JVM [\#589](https://github.com/clojerl/clojerl/issues/589)
**Fixed bugs:**
- extend-type for default doesn't work as expected [\#616](https://github.com/clojerl/clojerl/issues/616)
- Using clojure.core/nth in an inifinite lazy seq never returns [\#607](https://github.com/clojerl/clojerl/issues/607)
- Hash collisions generate wrong behaviour for set [\#590](https://github.com/clojerl/clojerl/issues/590)
- str function for namespaces returns unexpected result [\#581](https://github.com/clojerl/clojerl/issues/581)
- Eduction should implement ISeqable [\#562](https://github.com/clojerl/clojerl/issues/562)
**Closed issues:**
- Embed type dispatch in the protocol module [\#644](https://github.com/clojerl/clojerl/issues/644)
- Improve implementation of clojure.core/str and clojure.string/capitalize [\#637](https://github.com/clojerl/clojerl/issues/637)
- Build with Erlang/OTP 22.0 [\#634](https://github.com/clojerl/clojerl/issues/634)
- Performance degradation when reducing a vector [\#625](https://github.com/clojerl/clojerl/issues/625)
- Avoid calling constructor function for empty literal collections [\#622](https://github.com/clojerl/clojerl/issues/622)
- Examples? [\#618](https://github.com/clojerl/clojerl/issues/618)
- Bad break character in clje rlwrap command [\#610](https://github.com/clojerl/clojerl/issues/610)
- Dispatch value in defmethod can't be a qualified symbol [\#605](https://github.com/clojerl/clojerl/issues/605)
- Migrate the rest of clojure.test-clojure.\* from Clojure upstream [\#587](https://github.com/clojerl/clojerl/issues/587)
- Build with OTP 21.1 [\#585](https://github.com/clojerl/clojerl/issues/585)
- \(/ 1\) throws an undef exception [\#583](https://github.com/clojerl/clojerl/issues/583)
- Stateful Transducers [\#249](https://github.com/clojerl/clojerl/issues/249)
**Merged pull requests:**
- Prepare release 0.5.0 [\#646](https://github.com/clojerl/clojerl/pull/646) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#644\] Embed type dispatch in the protocol module [\#645](https://github.com/clojerl/clojerl/pull/645) ([jfacorro](https://github.com/jfacorro))
- Avoid creating erlang.util.UUID for each ProcessVal and TransducerSeq [\#643](https://github.com/clojerl/clojerl/pull/643) ([jfacorro](https://github.com/jfacorro))
- Fix CI [\#640](https://github.com/clojerl/clojerl/pull/640) ([jfacorro](https://github.com/jfacorro))
- Improve clojerl.Var/apply performance [\#639](https://github.com/clojerl/clojerl/pull/639) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#637\] Improve str and capitalize implementation [\#638](https://github.com/clojerl/clojerl/pull/638) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#630\] Cycle, Repeat and Iterate [\#636](https://github.com/clojerl/clojerl/pull/636) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#634\] Erlang/OTP 22.0 [\#635](https://github.com/clojerl/clojerl/pull/635) ([jfacorro](https://github.com/jfacorro))
- Update benchmark comparing with Clojure [\#633](https://github.com/clojerl/clojerl/pull/633) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#631\] improve performance apply anon fn [\#632](https://github.com/clojerl/clojerl/pull/632) ([jfacorro](https://github.com/jfacorro))
- \[\#628\] Experiment with Clojure vector implementation [\#629](https://github.com/clojerl/clojerl/pull/629) ([jfacorro](https://github.com/jfacorro))
- Add missing cases from the cljs benchmarks [\#627](https://github.com/clojerl/clojerl/pull/627) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#625\] Improve perf reduce vector [\#626](https://github.com/clojerl/clojerl/pull/626) ([jfacorro](https://github.com/jfacorro))
- Update benchmark results [\#624](https://github.com/clojerl/clojerl/pull/624) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#622\] Emit literal empty data structures instead of calling function [\#623](https://github.com/clojerl/clojerl/pull/623) ([jfacorro](https://github.com/jfacorro))
- \[\#589\] Benchmarks clojerl vs clojure [\#621](https://github.com/clojerl/clojerl/pull/621) ([jfacorro](https://github.com/jfacorro))
- \[\#90\] Delay [\#620](https://github.com/clojerl/clojerl/pull/620) ([jfacorro](https://github.com/jfacorro))
- \[\#618\] Improve documentation for Getting Started [\#619](https://github.com/clojerl/clojerl/pull/619) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#616\] extend-type fails for default [\#617](https://github.com/clojerl/clojerl/pull/617) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#249\] stateful transducers [\#615](https://github.com/clojerl/clojerl/pull/615) ([jfacorro](https://github.com/jfacorro))
- \[Fixes \#562\] Support ISeqable for Eduction through an EductionSeq type [\#613](https://github.com/clojerl/clojerl/pull/613) ([jfacorro](https://github.com/jfacorro))
- \[Fixes \#610\] Fix typo in clje script [\#612](https://github.com/clojerl/clojerl/pull/612) ([jfacorro](https://github.com/jfacorro))
- \[\#587\] migrate clojure test clojure printer [\#611](https://github.com/clojerl/clojerl/pull/611) ([jfacorro](https://github.com/jfacorro))
- \[\#587\] migrate clojure.test-clojure.test-fixtures [\#609](https://github.com/clojerl/clojerl/pull/609) ([jfacorro](https://github.com/jfacorro))
- \[Fixes \#607\] Traverse seq when calling nth for ISequential instead of using to\_list [\#608](https://github.com/clojerl/clojerl/pull/608) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#605\] Using qualified symbol in defmethod doesn't fail [\#606](https://github.com/clojerl/clojerl/pull/606) ([jfacorro](https://github.com/jfacorro))
- \[\#587\] Migrate clojure.test-clojure.special [\#604](https://github.com/clojerl/clojerl/pull/604) ([jfacorro](https://github.com/jfacorro))
- \[\#587\] Migrate clojure test clojure vectors [\#603](https://github.com/clojerl/clojerl/pull/603) ([jfacorro](https://github.com/jfacorro))
- \[\#587\] Add clojure.test-clojure.refs \(which is empty\) [\#602](https://github.com/clojerl/clojerl/pull/602) ([jfacorro](https://github.com/jfacorro))
- \[\#587\] migrate clojure.test-clojure.rt [\#601](https://github.com/clojerl/clojerl/pull/601) ([jfacorro](https://github.com/jfacorro))
- \[\#587\] Migrate clojure.test-clojure.repl [\#600](https://github.com/clojerl/clojerl/pull/600) ([jfacorro](https://github.com/jfacorro))
- \[\#587\] migrate clojure test clojure predicates [\#599](https://github.com/clojerl/clojerl/pull/599) ([jfacorro](https://github.com/jfacorro))
- \[\#587\] Add clojure.test-clojure.other-functions [\#598](https://github.com/clojerl/clojerl/pull/598) ([jfacorro](https://github.com/jfacorro))
- \[\#587\] Add clojure.test-clojure.ns-libs [\#597](https://github.com/clojerl/clojerl/pull/597) ([jfacorro](https://github.com/jfacorro))
- \[\#587\] migrate clojure test clojure for [\#596](https://github.com/clojerl/clojerl/pull/596) ([jfacorro](https://github.com/jfacorro))
- \[\#587\] Migrate clojure.test-clojure.fn [\#595](https://github.com/clojerl/clojerl/pull/595) ([jfacorro](https://github.com/jfacorro))
- \[\#587\] Add clojure.test-clojure.evaluation [\#594](https://github.com/clojerl/clojerl/pull/594) ([jfacorro](https://github.com/jfacorro))
- \[\#587\] Migrate clojure.test-clojure.data-structures [\#593](https://github.com/clojerl/clojerl/pull/593) ([jfacorro](https://github.com/jfacorro))
- \[\#587\] clojure.test-clojure.clojure-walk, clojure.test-clojure.control [\#592](https://github.com/clojerl/clojerl/pull/592) ([jfacorro](https://github.com/jfacorro))
- \[Fixes \#590\] set hash collisions generate problems [\#591](https://github.com/clojerl/clojerl/pull/591) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#585\] Build with OTP 21.1 [\#586](https://github.com/clojerl/clojerl/pull/586) ([jfacorro](https://github.com/jfacorro))
- \[Fixes \#583\] divide arity 1 fails [\#584](https://github.com/clojerl/clojerl/pull/584) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#581\] str for namespaces [\#582](https://github.com/clojerl/clojerl/pull/582) ([jfacorro](https://github.com/jfacorro))
## [0.4.1](https://github.com/clojerl/clojerl/tree/0.4.1) (2018-11-28)
[Full Changelog](https://github.com/clojerl/clojerl/compare/0.4.0...0.4.1)
**Fixed bugs:**
- Memory leak when using clj\_rt:print/1 [\#579](https://github.com/clojerl/clojerl/issues/579)
**Merged pull requests:**
- \[Fixes \#579\] Memory leak on clj\_rt:print/1 [\#580](https://github.com/clojerl/clojerl/pull/580) ([jfacorro](https://github.com/jfacorro))
## [0.4.0](https://github.com/clojerl/clojerl/tree/0.4.0) (2018-11-10)
[Full Changelog](https://github.com/clojerl/clojerl/compare/0.3.0...0.4.0)
**Implemented enhancements:**
- Use rebar3\_clojerl plugin to compile clojerl [\#563](https://github.com/clojerl/clojerl/issues/563)
- Improve instance? and satisfies? performance [\#552](https://github.com/clojerl/clojerl/issues/552)
- OTP 21.x compatible [\#545](https://github.com/clojerl/clojerl/issues/545)
**Fixed bugs:**
- defmethod can generate problematic var names [\#573](https://github.com/clojerl/clojerl/issues/573)
- catch accepts any symbol as the exception type [\#571](https://github.com/clojerl/clojerl/issues/571)
- Providing a value that doesn't implement IFn to a keyword shouldn't fail [\#570](https://github.com/clojerl/clojerl/issues/570)
- symbol should parse name with slash [\#568](https://github.com/clojerl/clojerl/issues/568)
- print-method implementation for UUIDs is not loaded correctly [\#558](https://github.com/clojerl/clojerl/issues/558)
- Handle hash collisions in maps and sets [\#557](https://github.com/clojerl/clojerl/issues/557)
- Hash for empty unordered and ordered collection is the same [\#555](https://github.com/clojerl/clojerl/issues/555)
- Find a workaround to issue ERL-658 for letrec [\#547](https://github.com/clojerl/clojerl/issues/547)
**Closed issues:**
- Unable to \< make repl \> [\#577](https://github.com/clojerl/clojerl/issues/577)
- clojure.edn [\#550](https://github.com/clojerl/clojerl/issues/550)
**Merged pull requests:**
- \[Closes \#577\] make repl fails on ubuntu [\#578](https://github.com/clojerl/clojerl/pull/578) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#571\] Warn when symbol is not resolved as a type [\#576](https://github.com/clojerl/clojerl/pull/576) ([jfacorro](https://github.com/jfacorro))
- \[Fixes \#570\] Return nil or default value for general get [\#575](https://github.com/clojerl/clojerl/pull/575) ([jfacorro](https://github.com/jfacorro))
- \[Fixes \#573\] Generate better names for defmethod implementation vars [\#574](https://github.com/clojerl/clojerl/pull/574) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#550\] Implements clojure.edn [\#572](https://github.com/clojerl/clojerl/pull/572) ([jfacorro](https://github.com/jfacorro))
- \[Fix \#568\] Parse slash when name includes it [\#569](https://github.com/clojerl/clojerl/pull/569) ([jfacorro](https://github.com/jfacorro))
- Update rebar3\_clojerl plugin [\#567](https://github.com/clojerl/clojerl/pull/567) ([jfacorro](https://github.com/jfacorro))
- Return name for the Core chunk [\#566](https://github.com/clojerl/clojerl/pull/566) ([jfacorro](https://github.com/jfacorro))
- Upgrade rebar3 plugin [\#565](https://github.com/clojerl/clojerl/pull/565) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#563\] Use rebar3 plugin [\#564](https://github.com/clojerl/clojerl/pull/564) ([jfacorro](https://github.com/jfacorro))
- Timestamp to from date [\#561](https://github.com/clojerl/clojerl/pull/561) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#557\] Handle hash collisions [\#560](https://github.com/clojerl/clojerl/pull/560) ([jfacorro](https://github.com/jfacorro))
- \[Fixes \#558\] Move print-method impls for UUID and Date to clojure.core [\#559](https://github.com/clojerl/clojerl/pull/559) ([jfacorro](https://github.com/jfacorro))
- \[Fixes \#555\] Change the initial hash value for unordered collections [\#556](https://github.com/clojerl/clojerl/pull/556) ([jfacorro](https://github.com/jfacorro))
- Small change in the implementation for cons in clojerl.Map [\#554](https://github.com/clojerl/clojerl/pull/554) ([jfacorro](https://github.com/jfacorro))
- \[Fixes \#552\] Avoid calling clj\_rt:type\[\_module\]/1 [\#553](https://github.com/clojerl/clojerl/pull/553) ([jfacorro](https://github.com/jfacorro))
- Remove unused dev deps, update eflame with latest improvements [\#551](https://github.com/clojerl/clojerl/pull/551) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#545\] OTP 21 compatible [\#549](https://github.com/clojerl/clojerl/pull/549) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#547\] letrec workaround ERL-658 [\#548](https://github.com/clojerl/clojerl/pull/548) ([jfacorro](https://github.com/jfacorro))
## [0.3.0](https://github.com/clojerl/clojerl/tree/0.3.0) (2018-06-30)
[Full Changelog](https://github.com/clojerl/clojerl/compare/0.2.0...0.3.0)
**Implemented enhancements:**
- clojure.core/load-lib reports the wrong stacktrace on error [\#536](https://github.com/clojerl/clojerl/issues/536)
- Return information for compiled BEAM files [\#507](https://github.com/clojerl/clojerl/issues/507)
- Improve performance on protocol dispatch [\#504](https://github.com/clojerl/clojerl/issues/504)
- Add core Erlang functions to clojure.core [\#471](https://github.com/clojerl/clojerl/issues/471)
- Avoid checking for a fake\_fun in the Fn protocol implementation for Var [\#156](https://github.com/clojerl/clojerl/issues/156)
**Fixed bugs:**
- char? returns the wrong result [\#541](https://github.com/clojerl/clojerl/issues/541)
- rseq should return nil for empty vector [\#538](https://github.com/clojerl/clojerl/issues/538)
- Re-binding value for multimethod var breaks implementation function resolution [\#534](https://github.com/clojerl/clojerl/issues/534)
- Wrong message in clojure.test when ERROR [\#532](https://github.com/clojerl/clojerl/issues/532)
- Multiple "\#\_" makes the reader crash [\#525](https://github.com/clojerl/clojerl/issues/525)
- Improve message for bad arity error in anonymous functions [\#524](https://github.com/clojerl/clojerl/issues/524)
- Improve analysis and error message for unresolved symbol in def [\#523](https://github.com/clojerl/clojerl/issues/523)
- Correctly read and expand fully qualified keywords with aliases [\#521](https://github.com/clojerl/clojerl/issues/521)
- Use fully qualified call in inline function for nil? [\#519](https://github.com/clojerl/clojerl/issues/519)
- +1 is read as -1 \(!!!\) [\#517](https://github.com/clojerl/clojerl/issues/517)
- docstring for namespaces is lost [\#516](https://github.com/clojerl/clojerl/issues/516)
- Unexpected error when referring the same var [\#509](https://github.com/clojerl/clojerl/issues/509)
**Closed issues:**
- Implement ILookup for Erlang lists [\#530](https://github.com/clojerl/clojerl/issues/530)
- Improve processing of arguments in apply function for Vars [\#512](https://github.com/clojerl/clojerl/issues/512)
- IReversible [\#506](https://github.com/clojerl/clojerl/issues/506)
**Merged pull requests:**
- Add example for letfn [\#546](https://github.com/clojerl/clojerl/pull/546) ([jfacorro](https://github.com/jfacorro))
- \[Fixes \#525\] Handle multiple contiguous discards [\#544](https://github.com/clojerl/clojerl/pull/544) ([jfacorro](https://github.com/jfacorro))
- Remove unnecesary code from RSeq implementation and improve test coverage [\#543](https://github.com/clojerl/clojerl/pull/543) ([jfacorro](https://github.com/jfacorro))
- \[Fixes \#541\] Check for a binary with a single utf8 character in char? [\#542](https://github.com/clojerl/clojerl/pull/542) ([jfacorro](https://github.com/jfacorro))
- Represent UUID with lower case letters [\#540](https://github.com/clojerl/clojerl/pull/540) ([jfacorro](https://github.com/jfacorro))
- \[Fixes \#538\] rseq return nil for empty vectors [\#539](https://github.com/clojerl/clojerl/pull/539) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#536\] Allow two arguments for throw, the second will be the stacktrace [\#537](https://github.com/clojerl/clojerl/pull/537) ([jfacorro](https://github.com/jfacorro))
- \[Fixes \#534\] Always provide the Var and not its bound value [\#535](https://github.com/clojerl/clojerl/pull/535) ([jfacorro](https://github.com/jfacorro))
- \[\#532\] Get the var's name from its meta [\#533](https://github.com/clojerl/clojerl/pull/533) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#530\] Implement ILookup for Erlang lists [\#531](https://github.com/clojerl/clojerl/pull/531) ([jfacorro](https://github.com/jfacorro))
- \[\#516\] ns docstring lost [\#529](https://github.com/clojerl/clojerl/pull/529) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#523\] Check if inside def when there is an unresolved symbol [\#528](https://github.com/clojerl/clojerl/pull/528) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#524\] Improve error message when calling anonymous functions with badarity [\#527](https://github.com/clojerl/clojerl/pull/527) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#525\] Handle double discard dispatch [\#526](https://github.com/clojerl/clojerl/pull/526) ([jfacorro](https://github.com/jfacorro))
- \[Fix \#521\] Correctly read :: keywords with aliased ns [\#522](https://github.com/clojerl/clojerl/pull/522) ([jfacorro](https://github.com/jfacorro))
- \[Fix \#519\] Use fully qualified call to clojure.core/list [\#520](https://github.com/clojerl/clojerl/pull/520) ([jfacorro](https://github.com/jfacorro))
- \[Fixes \#517\] Change check for negation and add tests [\#518](https://github.com/clojerl/clojerl/pull/518) ([jfacorro](https://github.com/jfacorro))
- \[\#156\] Invert the order of clauses for checking fake\_fun value [\#515](https://github.com/clojerl/clojerl/pull/515) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#156\] Mark vars inside fake\_funs and when macroexpanding [\#514](https://github.com/clojerl/clojerl/pull/514) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#512\] Avoid calling maps:get/\[2,3\] [\#513](https://github.com/clojerl/clojerl/pull/513) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#506\] Implement IReversible for vectors [\#511](https://github.com/clojerl/clojerl/pull/511) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#509\] Don't error if the var is the same [\#510](https://github.com/clojerl/clojerl/pull/510) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#507\] Return output files from compile\_file function [\#508](https://github.com/clojerl/clojerl/pull/508) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#504\] Reimplement protocol dispatch to improve performance [\#505](https://github.com/clojerl/clojerl/pull/505) ([jfacorro](https://github.com/jfacorro))
## [0.2.0](https://github.com/clojerl/clojerl/tree/0.2.0) (2018-04-08)
[Full Changelog](https://github.com/clojerl/clojerl/compare/0.1.0...0.2.0)
**Implemented enhancements:**
- Return tuples instead of vectors for erlang.Map's seq implementation [\#502](https://github.com/clojerl/clojerl/issues/502)
- 100% test coverage for clojerl.Vector.ChunkedSeq [\#500](https://github.com/clojerl/clojerl/issues/500)
- Avoid regenerating atom from binary in apply function for Vars [\#495](https://github.com/clojerl/clojerl/issues/495)
- Improve performance when reading integer and float [\#493](https://github.com/clojerl/clojerl/issues/493)
- Don't crash the VM when running clojure.main and there's an error [\#475](https://github.com/clojerl/clojerl/issues/475)
- Replace code in regex functions for pattern match [\#473](https://github.com/clojerl/clojerl/issues/473)
- Emit local call for fake funs when the call is a recursive one [\#469](https://github.com/clojerl/clojerl/issues/469)
- Provide similar command line interface as clojure and clj binaries [\#467](https://github.com/clojerl/clojerl/issues/467)
- clojure.core/spit should also work for raw binary [\#463](https://github.com/clojerl/clojerl/issues/463)
- Replace clj\_utils:error/throw for Erlang macros to get better stacktraces [\#460](https://github.com/clojerl/clojerl/issues/460)
- Move docs to clojerl.github.io [\#457](https://github.com/clojerl/clojerl/issues/457)
- Remove references to Long or long and auto-promoting [\#443](https://github.com/clojerl/clojerl/issues/443)
- Use new ets:select\_replace/2 function for CAS in Atom when available [\#421](https://github.com/clojerl/clojerl/issues/421)
- Implement protocol to convert Clojure collections into Erlang data types and vice-versa [\#320](https://github.com/clojerl/clojerl/issues/320)
- Time reader, analyzer and emitter separately in compiler [\#250](https://github.com/clojerl/clojerl/issues/250)
- Change the .e suffix notation for literal Erlang funs [\#114](https://github.com/clojerl/clojerl/issues/114)
**Fixed bugs:**
- transduce implementation calls seq-reduce with the wrong argument order [\#498](https://github.com/clojerl/clojerl/issues/498)
- args variable is trapped in fn\* because of bad Core Erlang generation [\#490](https://github.com/clojerl/clojerl/issues/490)
- Unexpected bad performance for static function call to + [\#487](https://github.com/clojerl/clojerl/issues/487)
- clojure.core/source is not working on try.clojerl.online [\#485](https://github.com/clojerl/clojerl/issues/485)
- Stack trace pretty printing fails when args are provided instead of arity [\#483](https://github.com/clojerl/clojerl/issues/483)
- REPL no longer starting when clje script doesn't get arguments [\#481](https://github.com/clojerl/clojerl/issues/481)
- Using -e in clje script fails [\#478](https://github.com/clojerl/clojerl/issues/478)
- Don't crash the VM when running clojure.main and there's an error [\#475](https://github.com/clojerl/clojerl/issues/475)
- Unexpected behaviour using \_ when pattern matching in case\* [\#464](https://github.com/clojerl/clojerl/issues/464)
- clojure.core/spit should also work for raw binary [\#463](https://github.com/clojerl/clojerl/issues/463)
- Remove references to class and add missing type? function [\#455](https://github.com/clojerl/clojerl/issues/455)
- Using a fn inside a def for initializing its value results in error [\#453](https://github.com/clojerl/clojerl/issues/453)
- Running benchmarks fails [\#448](https://github.com/clojerl/clojerl/issues/448)
- Check results from running Clojure tests [\#447](https://github.com/clojerl/clojerl/issues/447)
- Build fails because of parsing of version [\#444](https://github.com/clojerl/clojerl/issues/444)
- \[\#495\] Fix bug introduced binary\_to\_atom usage reduction [\#497](https://github.com/clojerl/clojerl/pull/497) ([jfacorro](https://github.com/jfacorro))
**Closed issues:**
- Implement inlining [\#489](https://github.com/clojerl/clojerl/issues/489)
- Should be possible to pattern match exception type with variable in`catch` clause [\#436](https://github.com/clojerl/clojerl/issues/436)
- Allow error types in catch clause [\#291](https://github.com/clojerl/clojerl/issues/291)
**Merged pull requests:**
- \[Closes \#502\] Return Erlang list of Erlang tuples [\#503](https://github.com/clojerl/clojerl/pull/503) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#500\] Complete test coverage clojerl.Vector.ChunkedSeq [\#501](https://github.com/clojerl/clojerl/pull/501) ([jfacorro](https://github.com/jfacorro))
- \[Fixes \#498\] Fix order of arguments and use satisfies? instead of instance? [\#499](https://github.com/clojerl/clojerl/pull/499) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#495\] binary\_to\_atom usage reduction [\#496](https://github.com/clojerl/clojerl/pull/496) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#493\] Compile regular expressions for numbers and run them only once [\#494](https://github.com/clojerl/clojerl/pull/494) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#489\] Inlining [\#492](https://github.com/clojerl/clojerl/pull/492) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#490\] Funs Core Erlang generation bug [\#491](https://github.com/clojerl/clojerl/pull/491) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#487\] Rename reduce1 and into1 so that the final ones get used in the end [\#488](https://github.com/clojerl/clojerl/pull/488) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#485\] Avoid failure for source [\#486](https://github.com/clojerl/clojerl/pull/486) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#483\] Handle the case when args are provided [\#484](https://github.com/clojerl/clojerl/pull/484) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#481\] Fix bug introduced by \#478 [\#482](https://github.com/clojerl/clojerl/pull/482) ([jfacorro](https://github.com/jfacorro))
- \[\#320\] Protocol for conversion of collections to Erlang collections [\#480](https://github.com/clojerl/clojerl/pull/480) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#478\] Expand extra arguments differently [\#479](https://github.com/clojerl/clojerl/pull/479) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#421\] Use ETS compare-and-swap for Atoms when available [\#477](https://github.com/clojerl/clojerl/pull/477) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#475\] Don't crash when an error occurs while loading [\#476](https://github.com/clojerl/clojerl/pull/476) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#473\] Use pattern matching [\#474](https://github.com/clojerl/clojerl/pull/474) ([jfacorro](https://github.com/jfacorro))
- Change the atom used as a type tag [\#472](https://github.com/clojerl/clojerl/pull/472) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#469\] Emit local calls for recursive calls in fake funs [\#470](https://github.com/clojerl/clojerl/pull/470) ([jfacorro](https://github.com/jfacorro))
- \[\#467\] Similar CLI to clojure [\#468](https://github.com/clojerl/clojerl/pull/468) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#463\] Process file options [\#466](https://github.com/clojerl/clojerl/pull/466) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#464\] Case duplicate\_var error [\#465](https://github.com/clojerl/clojerl/pull/465) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#291\] Catch accepts error type [\#462](https://github.com/clojerl/clojerl/pull/462) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#460\] Replace error generating function calls for Erlang macros [\#461](https://github.com/clojerl/clojerl/pull/461) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#436\] Allow symbols in error type position for catch clauses [\#459](https://github.com/clojerl/clojerl/pull/459) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#457\] Move docs [\#458](https://github.com/clojerl/clojerl/pull/458) ([jfacorro](https://github.com/jfacorro))
- \[Fixes \#455\] Replace references to class for type [\#456](https://github.com/clojerl/clojerl/pull/456) ([jfacorro](https://github.com/jfacorro))
- \[Fixes \#453\] Error when using fn with def [\#454](https://github.com/clojerl/clojerl/pull/454) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#250\] Report time for read, analyze, emit & eval separately [\#452](https://github.com/clojerl/clojerl/pull/452) ([jfacorro](https://github.com/jfacorro))
- Remove some TODOs from clojure.core [\#451](https://github.com/clojerl/clojerl/pull/451) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#447\] Check test results [\#450](https://github.com/clojerl/clojerl/pull/450) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#448\] Running benchmark fails [\#449](https://github.com/clojerl/clojerl/pull/449) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#443\] Remove references to long, auto-promoting and integer overflow [\#446](https://github.com/clojerl/clojerl/pull/446) ([jfacorro](https://github.com/jfacorro))
- \[\#444\] Fix version regex, don't fail on parsing version [\#445](https://github.com/clojerl/clojerl/pull/445) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#114\] Tagged literal for erl funs [\#442](https://github.com/clojerl/clojerl/pull/442) ([jfacorro](https://github.com/jfacorro))
## [0.1.0](https://github.com/clojerl/clojerl/tree/0.1.0) (2017-10-23)
[Full Changelog](https://github.com/clojerl/clojerl/compare/553f5dd2c0d6abcda066dd09adb55428e741a4c5...0.1.0)
**Implemented enhancements:**
- Define Erlang expr\(\) type in the analyzer so that maybe dialyzer can do its magic [\#437](https://github.com/clojerl/clojerl/issues/437)
- Move clojure.test-helper to test directory [\#432](https://github.com/clojerl/clojerl/issues/432)
- Iterating over chars in a String on print-method is very inefficient [\#424](https://github.com/clojerl/clojerl/issues/424)
- Use sh instead of bash in bin/clojerl [\#417](https://github.com/clojerl/clojerl/issues/417)
- Add replace function to String type [\#415](https://github.com/clojerl/clojerl/issues/415)
- Avoid having to load all related modules during application start [\#413](https://github.com/clojerl/clojerl/issues/413)
- Improve help text in bin/clojerl [\#404](https://github.com/clojerl/clojerl/issues/404)
- nil should not implement protocols by default [\#402](https://github.com/clojerl/clojerl/issues/402)
- Use dot syntax in clojure.string [\#400](https://github.com/clojerl/clojerl/issues/400)
- Use Erlang implementation of murmur3 hashing and check performance difference [\#393](https://github.com/clojerl/clojerl/issues/393)
- Run Clojure tests from outside Common Test [\#392](https://github.com/clojerl/clojerl/issues/392)
- Avoid protocol resolution when possible [\#388](https://github.com/clojerl/clojerl/issues/388)
- Run benchmarks using clojure.main [\#384](https://github.com/clojerl/clojerl/issues/384)
- Remove arbitrary precision functions [\#378](https://github.com/clojerl/clojerl/issues/378)
- Avoid creating a type instance when checking the type [\#376](https://github.com/clojerl/clojerl/issues/376)
- Create report based on the benchmark results [\#373](https://github.com/clojerl/clojerl/issues/373)
- Rename and re-organize type and modules [\#366](https://github.com/clojerl/clojerl/issues/366)
- Move internal definitions in clojerl.hrl to an internal header file [\#363](https://github.com/clojerl/clojerl/issues/363)
- unread shouldn't be part of clojerl.IReader protocol [\#358](https://github.com/clojerl/clojerl/issues/358)
- clojure.repl/source is not implemented [\#321](https://github.com/clojerl/clojerl/issues/321)
- Compile with OTP 20 [\#316](https://github.com/clojerl/clojerl/issues/316)
- assert-args returns an unreadable error message [\#314](https://github.com/clojerl/clojerl/issues/314)
- Time benchmark [\#308](https://github.com/clojerl/clojerl/issues/308)
- Replace the mention of forms for modules [\#296](https://github.com/clojerl/clojerl/issues/296)
- The context value in env is not used [\#295](https://github.com/clojerl/clojerl/issues/295)
- Erlang 19.3 Common Test requires end\_per\_\* when init\_per\_\* is there [\#277](https://github.com/clojerl/clojerl/issues/277)
- Make dialyzer happy [\#266](https://github.com/clojerl/clojerl/issues/266)
- Move clojure source files to src/clj and test files to test/clj [\#265](https://github.com/clojerl/clojerl/issues/265)
- Make some clojerl modules sticky, like clojure.core [\#264](https://github.com/clojerl/clojerl/issues/264)
- Avoid generating unique atoms in gensym [\#259](https://github.com/clojerl/clojerl/issues/259)
- Migrate to rebar3 [\#253](https://github.com/clojerl/clojerl/issues/253)
- Items in LazySeqs evaluated multiple times [\#246](https://github.com/clojerl/clojerl/issues/246)
- Remove any mention of Java in docstrings [\#245](https://github.com/clojerl/clojerl/issues/245)
- Make Env/State the last argument in Erlang code [\#233](https://github.com/clojerl/clojerl/issues/233)
- Rename clj\_core to clj\_rt \(?\) [\#232](https://github.com/clojerl/clojerl/issues/232)
- Rename anno to ann when referring to an annotation [\#228](https://github.com/clojerl/clojerl/issues/228)
- Rename clojerl.protocol to clj\_protocols [\#222](https://github.com/clojerl/clojerl/issues/222)
- Rename \*warn-on-type-resolution\* to \*warn-on-infer\* [\#220](https://github.com/clojerl/clojerl/issues/220)
- Improve implementation of apply for Var [\#206](https://github.com/clojerl/clojerl/issues/206)
- Add target to run benchmarks and store the results in a file [\#204](https://github.com/clojerl/clojerl/issues/204)
- Reduce runtime overhead for invoke \(IFn\) and resolve \(protocol\) [\#202](https://github.com/clojerl/clojerl/issues/202)
- Splice "block" Erlang syntax form [\#195](https://github.com/clojerl/clojerl/issues/195)
- Enclosing "let" and "loop" in a fun for a scoping context might not be necessary [\#194](https://github.com/clojerl/clojerl/issues/194)
- Create script to run clojure tests [\#188](https://github.com/clojerl/clojerl/issues/188)
- Protocols: missing Object type for a catch all implementation [\#185](https://github.com/clojerl/clojerl/issues/185)
- deftype\*: remove module from clj\_module after compiling in emitter [\#175](https://github.com/clojerl/clojerl/issues/175)
- Init expressions for vars could be evaluated at compile time [\#171](https://github.com/clojerl/clojerl/issues/171)
- Remove prefix from protocol \(actually behavior\) functions [\#163](https://github.com/clojerl/clojerl/issues/163)
- Calculate hash only once for each value [\#153](https://github.com/clojerl/clojerl/issues/153)
- Write some simple benchmarks [\#149](https://github.com/clojerl/clojerl/issues/149)
- Can't use values with metadata as keys because equality doesn't work [\#148](https://github.com/clojerl/clojerl/issues/148)
- Explore the possibility of replacing wrapper funs for lexical scopes [\#139](https://github.com/clojerl/clojerl/issues/139)
- clj\_util:throw\* should be clj\_utils:error\* in most cases [\#138](https://github.com/clojerl/clojerl/issues/138)
- Give namespaces their own type [\#104](https://github.com/clojerl/clojerl/issues/104)
- When emitting a Clojure if expression avoid generating an Erlang variable for the true value [\#93](https://github.com/clojerl/clojerl/issues/93)
- Consider dropping the use of erl\_syntax and rolling syntax forms by hand [\#91](https://github.com/clojerl/clojerl/issues/91)
- Avoid having to compile the whole module multiple times during compilation [\#86](https://github.com/clojerl/clojerl/issues/86)
- Avoid multiple passes for parse\_def and parse\_fn [\#66](https://github.com/clojerl/clojerl/issues/66)
- Remove erl\_fun reader dispatch [\#64](https://github.com/clojerl/clojerl/issues/64)
- clojerl.Var: maybe change internal representation of ns and name from symbol to binary [\#40](https://github.com/clojerl/clojerl/issues/40)
- Integration with Travis CI [\#35](https://github.com/clojerl/clojerl/issues/35)
- Integrate with Travis CI [\#26](https://github.com/clojerl/clojerl/issues/26)
- Change protocol implementation to avoid the generation of too many modules [\#24](https://github.com/clojerl/clojerl/issues/24)
- data structures: look into implementing vectors and/or sets with maps/tuples [\#19](https://github.com/clojerl/clojerl/issues/19)
- reader: keep track of line and column information [\#15](https://github.com/clojerl/clojerl/issues/15)
**Fixed bugs:**
- Warn when defining a var that overrides an existing var [\#438](https://github.com/clojerl/clojerl/issues/438)
- Bug when parsing options in bin/clojerl [\#430](https://github.com/clojerl/clojerl/issues/430)
- Defining a var in pre-compiled namespace doesn't work as expected in REPL [\#429](https://github.com/clojerl/clojerl/issues/429)
- Vars defined with defn have :arglists as \#erl\(\) [\#426](https://github.com/clojerl/clojerl/issues/426)
- Wrong IStringable implementation for Erlang strings [\#422](https://github.com/clojerl/clojerl/issues/422)
- Include compiler as a dependency in .app file [\#419](https://github.com/clojerl/clojerl/issues/419)
- Avoid having to load all related modules during application start [\#413](https://github.com/clojerl/clojerl/issues/413)
- Type defined with deftype can't be used in the implementation functions [\#411](https://github.com/clojerl/clojerl/issues/411)
- Namespace import and aliases should also be kept as modules attributes [\#407](https://github.com/clojerl/clojerl/issues/407)
- Improve help text in bin/clojerl [\#404](https://github.com/clojerl/clojerl/issues/404)
- nil should not implement protocols by default [\#402](https://github.com/clojerl/clojerl/issues/402)
- Macro-expansion of dot syntax doesn't keep tag [\#396](https://github.com/clojerl/clojerl/issues/396)
- Generated symbol in syntax quote doesn't keep meta [\#394](https://github.com/clojerl/clojerl/issues/394)
- Adding a type hint to a list doesn't have any effect [\#381](https://github.com/clojerl/clojerl/issues/381)
- Binding value for \*compile-path\* in clojure.main should be a binary [\#371](https://github.com/clojerl/clojerl/issues/371)
- Dynamic vars that are functions should also check the current binding [\#349](https://github.com/clojerl/clojerl/issues/349)
- Metadata followed by a comment is lost [\#347](https://github.com/clojerl/clojerl/issues/347)
- Force evaluation order when building lists [\#345](https://github.com/clojerl/clojerl/issues/345)
- Metadata is lost after macroexpansion and syntax-quote [\#341](https://github.com/clojerl/clojerl/issues/341)
- Multimethods are registered with only name [\#339](https://github.com/clojerl/clojerl/issues/339)
- Emit the functions for a protocol instead of the callback attributes [\#337](https://github.com/clojerl/clojerl/issues/337)
- Printing readably does not work for vectors and other types [\#335](https://github.com/clojerl/clojerl/issues/335)
- count should be O\(1\) for clojerl.List [\#326](https://github.com/clojerl/clojerl/issues/326)
- Some type hints are ignored [\#323](https://github.com/clojerl/clojerl/issues/323)
- Compile with OTP 20 [\#316](https://github.com/clojerl/clojerl/issues/316)
- assert-args returns an unreadable error message [\#314](https://github.com/clojerl/clojerl/issues/314)
- Add clojure.test-clojure.compilation tests [\#305](https://github.com/clojerl/clojerl/issues/305)
- Don't generate an on\_load function if there are no expressions. [\#304](https://github.com/clojerl/clojerl/issues/304)
- benchmark target is broken [\#302](https://github.com/clojerl/clojerl/issues/302)
- Replace the mention of forms for modules [\#296](https://github.com/clojerl/clojerl/issues/296)
- Missing location information for symbol [\#293](https://github.com/clojerl/clojerl/issues/293)
- Binary file for clje.user is not written by design in clojure.main [\#289](https://github.com/clojerl/clojerl/issues/289)
- Handle \_ and - correctly when loading files [\#287](https://github.com/clojerl/clojerl/issues/287)
- Include full path for clje/cljc files [\#286](https://github.com/clojerl/clojerl/issues/286)
- Erlang 19.3 Common Test requires end\\_per\\_\\* when init\\_per\\_\\* is there [\#277](https://github.com/clojerl/clojerl/issues/277)
- Modify extension from .clj to .clje [\#271](https://github.com/clojerl/clojerl/issues/271)
- Print Erlang printable lists as \#erl"" [\#268](https://github.com/clojerl/clojerl/issues/268)
- Consider no namespace when identifying special forms [\#257](https://github.com/clojerl/clojerl/issues/257)
- Items in LazySeqs evaluated multiple times [\#246](https://github.com/clojerl/clojerl/issues/246)
- Remove any mention of Java in docstrings [\#245](https://github.com/clojerl/clojerl/issues/245)
- :arglists metadata in Vars gets converted into an Erlang list [\#242](https://github.com/clojerl/clojerl/issues/242)
- Non-printable strings can't be printed readably [\#239](https://github.com/clojerl/clojerl/issues/239)
- Metadata for Vars needs to be analyzed [\#218](https://github.com/clojerl/clojerl/issues/218)
- set! is not working when applied to vars [\#214](https://github.com/clojerl/clojerl/issues/214)
- Previously successful clojure tests are failing or producing errors [\#212](https://github.com/clojerl/clojerl/issues/212)
- Location information is missing from vars [\#191](https://github.com/clojerl/clojerl/issues/191)
- Compiler options used in emitter should be the ones provided in clj\_compiler [\#184](https://github.com/clojerl/clojerl/issues/184)
- clojure.test-clojure.protocol tests should pass [\#183](https://github.com/clojerl/clojerl/issues/183)
- nil's type should be nil [\#181](https://github.com/clojerl/clojerl/issues/181)
- try..catch in 'clojerl.protocol':resolve/3 breaks tail recursion [\#179](https://github.com/clojerl/clojerl/issues/179)
- Reader fails to correctly read some expressions when using io\_reader [\#172](https://github.com/clojerl/clojerl/issues/172)
- Since def is "evaluated" at compile time it can't use surrounding bindings [\#170](https://github.com/clojerl/clojerl/issues/170)
- opts argument in clojure.core/re-run should comply with original [\#168](https://github.com/clojerl/clojerl/issues/168)
- Wrong error shown on protocol resolve [\#165](https://github.com/clojerl/clojerl/issues/165)
- \(dotimes \[\_ 1\]\) generates an "unbound \_" error [\#161](https://github.com/clojerl/clojerl/issues/161)
- Reader \(and clojure.core/read function\) should comply to original [\#160](https://github.com/clojerl/clojerl/issues/160)
- Vars metadata: add :name, :ns, :line and :column information [\#159](https://github.com/clojerl/clojerl/issues/159)
- Metadata should be analysed and emitted [\#158](https://github.com/clojerl/clojerl/issues/158)
- Can't use values with metadata as keys because equality doesn't work [\#148](https://github.com/clojerl/clojerl/issues/148)
- Using 'var' with a private var shows error about it being private [\#145](https://github.com/clojerl/clojerl/issues/145)
- multi-method: symbol as a dispatch value doesn't get dispatched [\#144](https://github.com/clojerl/clojerl/issues/144)
- clojure.core/re-matches fails to match string [\#142](https://github.com/clojerl/clojerl/issues/142)
- Setting the value for a dynamic var doesn't check if there is already a binding [\#140](https://github.com/clojerl/clojerl/issues/140)
- clj\\_util:throw\\* should be clj\\_utils:error\\* in most cases [\#138](https://github.com/clojerl/clojerl/issues/138)
- Using nil as a value for a dynamic binding doesn't work [\#135](https://github.com/clojerl/clojerl/issues/135)
- clj\_compiler\_SUITE is failing [\#132](https://github.com/clojerl/clojerl/issues/132)
- Multimethods implementation functions accumulate after repeated compilations [\#128](https://github.com/clojerl/clojerl/issues/128)
- Expressions inside literal tuples are not analyzed [\#108](https://github.com/clojerl/clojerl/issues/108)
- Conflict with var names, unwanted matching performed [\#94](https://github.com/clojerl/clojerl/issues/94)
- Macros defined in a namespace can't currently be used in the same ns [\#70](https://github.com/clojerl/clojerl/issues/70)
- Avoid multiple passes for parse\\_def and parse\\_fn [\#66](https://github.com/clojerl/clojerl/issues/66)
- HOF that return anonymous functions not working [\#65](https://github.com/clojerl/clojerl/issues/65)
- Symbols that get resolved to an erl\_fun might actually be vars that have not been defined yet [\#56](https://github.com/clojerl/clojerl/issues/56)
- Metadata: what happens if you use a symbol with metadata as a key in a map? [\#39](https://github.com/clojerl/clojerl/issues/39)
- reader: should be able to read one form at a time [\#13](https://github.com/clojerl/clojerl/issues/13)
**Closed issues:**
- An error occurred while compiling clojerl [\#387](https://github.com/clojerl/clojerl/issues/387)
- List available, missing and/or unsupported features [\#369](https://github.com/clojerl/clojerl/issues/369)
- Try map representation for types instead of tuples [\#364](https://github.com/clojerl/clojerl/issues/364)
- Build failed [\#356](https://github.com/clojerl/clojerl/issues/356)
- Remove handling of ratio [\#353](https://github.com/clojerl/clojerl/issues/353)
- ExceptionInfo, ex-info and ex-data [\#352](https://github.com/clojerl/clojerl/issues/352)
- Keep on\_load expressions when modifying a module [\#343](https://github.com/clojerl/clojerl/issues/343)
- Build with OTP 20.0 [\#330](https://github.com/clojerl/clojerl/issues/330)
- ArrayMaps \(TupleMaps\) missing [\#327](https://github.com/clojerl/clojerl/issues/327)
- Does Clojerl have emacs plugins? [\#315](https://github.com/clojerl/clojerl/issues/315)
- Using underscores as argument generates errors if the argument is used [\#312](https://github.com/clojerl/clojerl/issues/312)
- Fix elvis warnings [\#300](https://github.com/clojerl/clojerl/issues/300)
- Add .clje as clojure extension for github [\#297](https://github.com/clojerl/clojerl/issues/297)
- Add License [\#284](https://github.com/clojerl/clojerl/issues/284)
- Basic introductory documentation [\#283](https://github.com/clojerl/clojerl/issues/283)
- Improve build [\#274](https://github.com/clojerl/clojerl/issues/274)
- clojure.instant: printable dates and reader related tests [\#262](https://github.com/clojerl/clojerl/issues/262)
- Comparable, sort and sort-by [\#261](https://github.com/clojerl/clojerl/issues/261)
- Erlang alias operator [\#252](https://github.com/clojerl/clojerl/issues/252)
- clojerl.BitString implementation [\#243](https://github.com/clojerl/clojerl/issues/243)
- Missing clojure.\* namespaces [\#237](https://github.com/clojerl/clojerl/issues/237)
- Implement receive as a special form [\#234](https://github.com/clojerl/clojerl/issues/234)
- Implement IReduce for collections where it applies [\#224](https://github.com/clojerl/clojerl/issues/224)
- Sorted collections [\#201](https://github.com/clojerl/clojerl/issues/201)
- Finish copying over all of clojure.core [\#199](https://github.com/clojerl/clojerl/issues/199)
- Define and reuse all/0 and init\_per\_testcase/1 in clj\_test\_utils [\#190](https://github.com/clojerl/clojerl/issues/190)
- Implement clojure.string [\#177](https://github.com/clojerl/clojerl/issues/177)
- import [\#174](https://github.com/clojerl/clojerl/issues/174)
- Differences from Clojure [\#162](https://github.com/clojerl/clojerl/issues/162)
- Add a reader literal \#erl to indicate Erlang data types [\#151](https://github.com/clojerl/clojerl/issues/151)
- clojure.core: regex functions [\#130](https://github.com/clojerl/clojerl/issues/130)
- Include source for clojure.test and applicable Clojure tests [\#129](https://github.com/clojerl/clojerl/issues/129)
- deftype and defrecord [\#124](https://github.com/clojerl/clojerl/issues/124)
- case\* [\#123](https://github.com/clojerl/clojerl/issues/123)
- letfn\* [\#122](https://github.com/clojerl/clojerl/issues/122)
- Review all usages of the process dictionary as a cache!!!! [\#121](https://github.com/clojerl/clojerl/issues/121)
- Arrays [\#120](https://github.com/clojerl/clojerl/issues/120)
- Transient collections [\#119](https://github.com/clojerl/clojerl/issues/119)
- Reduced \(reduce, reduced?, etc.\) [\#118](https://github.com/clojerl/clojerl/issues/118)
- Rational numbers [\#116](https://github.com/clojerl/clojerl/issues/116)
- Chunked seqs [\#115](https://github.com/clojerl/clojerl/issues/115)
- Guards [\#113](https://github.com/clojerl/clojerl/issues/113)
- Pattern matching for let\*, fn\*, case\*, catch, receive\* and loop\* [\#111](https://github.com/clojerl/clojerl/issues/111)
- Clojure's IO features [\#105](https://github.com/clojerl/clojerl/issues/105)
- Protocols: defprotocol, extend, extend-protocol, extend-type [\#102](https://github.com/clojerl/clojerl/issues/102)
- Add line and file information to emitted forms [\#99](https://github.com/clojerl/clojerl/issues/99)
- use and refer [\#96](https://github.com/clojerl/clojerl/issues/96)
- Multimethods: defmulti, defmethod [\#92](https://github.com/clojerl/clojerl/issues/92)
- Fully functional ns macro \(:require, :use, :as, etc.\) [\#89](https://github.com/clojerl/clojerl/issues/89)
- Default readers: inst and uuid [\#84](https://github.com/clojerl/clojerl/issues/84)
- try..catch allow catching all Erlang exception classes [\#82](https://github.com/clojerl/clojerl/issues/82)
- Analyze and emit var [\#80](https://github.com/clojerl/clojerl/issues/80)
- try..catch..finally [\#77](https://github.com/clojerl/clojerl/issues/77)
- loop\* & recur [\#76](https://github.com/clojerl/clojerl/issues/76)
- lazy-seqs \(?\) [\#74](https://github.com/clojerl/clojerl/issues/74)
- Define clojure.core/defn- and take into account if a var is private [\#73](https://github.com/clojerl/clojerl/issues/73)
- Tests for the emitter [\#68](https://github.com/clojerl/clojerl/issues/68)
- Add test to compile .clj files in the priv folder [\#67](https://github.com/clojerl/clojerl/issues/67)
- Add file information to errors [\#62](https://github.com/clojerl/clojerl/issues/62)
- Var: dynamic bindings [\#61](https://github.com/clojerl/clojerl/issues/61)
- Tuples should implement ISequential [\#58](https://github.com/clojerl/clojerl/issues/58)
- Simple REPL [\#57](https://github.com/clojerl/clojerl/issues/57)
- Use line and column information in all errors shown, when possible [\#54](https://github.com/clojerl/clojerl/issues/54)
- If a var is not in the Env when analyzing try to get it from the module's attribute [\#53](https://github.com/clojerl/clojerl/issues/53)
- Test all data types [\#52](https://github.com/clojerl/clojerl/issues/52)
- compiler: provide options such as the output dir and compiler flags [\#49](https://github.com/clojerl/clojerl/issues/49)
- Declare dummy ISequential behavior to avoid warning [\#46](https://github.com/clojerl/clojerl/issues/46)
- clojure.core/require [\#44](https://github.com/clojerl/clojerl/issues/44)
- emitter: let\* [\#43](https://github.com/clojerl/clojerl/issues/43)
- Macros [\#42](https://github.com/clojerl/clojerl/issues/42)
- analyzer: allow pattern matching wherever there is a binding form [\#38](https://github.com/clojerl/clojerl/issues/38)
- def: add metadata from name symbol to var [\#37](https://github.com/clojerl/clojerl/issues/37)
- general: change keyword representation from clojerl.Keyword to plain Erlang atom [\#32](https://github.com/clojerl/clojerl/issues/32)
- emitter: invoke - figure out how functions and funs can map to defn and fn [\#30](https://github.com/clojerl/clojerl/issues/30)
- analyzer: loop\* [\#29](https://github.com/clojerl/clojerl/issues/29)
- reader: tuples \#\[\] [\#23](https://github.com/clojerl/clojerl/issues/23)
- reader: implement reader tags [\#22](https://github.com/clojerl/clojerl/issues/22)
- README [\#16](https://github.com/clojerl/clojerl/issues/16)
- analyzer: tests [\#11](https://github.com/clojerl/clojerl/issues/11)
- analyzer: let\* [\#10](https://github.com/clojerl/clojerl/issues/10)
- analyzer: do [\#9](https://github.com/clojerl/clojerl/issues/9)
- analyzer: if [\#8](https://github.com/clojerl/clojerl/issues/8)
- analyzer: check implementation for analyze\_seq [\#7](https://github.com/clojerl/clojerl/issues/7)
- analyzer: fn\* [\#6](https://github.com/clojerl/clojerl/issues/6)
- analyzer: quote [\#5](https://github.com/clojerl/clojerl/issues/5)
- analyzer: def [\#3](https://github.com/clojerl/clojerl/issues/3)
- analyzer: add `context` to env and `top\_level` to expressions when applicable [\#2](https://github.com/clojerl/clojerl/issues/2)
- reader: implement missing reader dispatches [\#1](https://github.com/clojerl/clojerl/issues/1)
**Merged pull requests:**
- \[Closes \#437\] Define expr type for analyzer [\#441](https://github.com/clojerl/clojerl/pull/441) ([jfacorro](https://github.com/jfacorro))
- Update Building Instructions [\#440](https://github.com/clojerl/clojerl/pull/440) ([kevgathuku](https://github.com/kevgathuku))
- \[Closes \#438\] Warn when overriding var [\#439](https://github.com/clojerl/clojerl/pull/439) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#429\] Check binary code in memory before going to the file [\#434](https://github.com/clojerl/clojerl/pull/434) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#432\] Move clojure.test-helper [\#433](https://github.com/clojerl/clojerl/pull/433) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#430\] Keep non-processed arguments in a var [\#431](https://github.com/clojerl/clojerl/pull/431) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#422\] Erlang string fix stringable implementation [\#428](https://github.com/clojerl/clojerl/pull/428) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#426\] Build list instead of using seq [\#427](https://github.com/clojerl/clojerl/pull/427) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#424\] Build string and then write [\#425](https://github.com/clojerl/clojerl/pull/425) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#422\] erlang.String fix IStringable implementation [\#423](https://github.com/clojerl/clojerl/pull/423) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#419\] Add compiler application in .app [\#420](https://github.com/clojerl/clojerl/pull/420) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#417\] Use sh instead of bash [\#418](https://github.com/clojerl/clojerl/pull/418) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#415\] Add replace to clojerl.String [\#416](https://github.com/clojerl/clojerl/pull/416) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#413\] Don't ensure modules on application start [\#414](https://github.com/clojerl/clojerl/pull/414) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#411\] Import type during analysis of deftype so that it can be resolved [\#412](https://github.com/clojerl/clojerl/pull/412) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#369\] List available features [\#410](https://github.com/clojerl/clojerl/pull/410) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#407\] Include imports and aliases [\#409](https://github.com/clojerl/clojerl/pull/409) ([jfacorro](https://github.com/jfacorro))
- \[\#406\] Don't delete cerl\_evalN module \(temp workaround\) [\#408](https://github.com/clojerl/clojerl/pull/408) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#404\] Improve help text for bin/clojerl [\#405](https://github.com/clojerl/clojerl/pull/405) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#402\] nil should not implement protocols by default [\#403](https://github.com/clojerl/clojerl/pull/403) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#400\] Use dot syntax in clojure.string [\#401](https://github.com/clojerl/clojerl/pull/401) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#393\] Erlang implementation of murmur3 [\#399](https://github.com/clojerl/clojerl/pull/399) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#392\] Run Clojure tests outside CT [\#398](https://github.com/clojerl/clojerl/pull/398) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#396\] Keep tag for dot syntax [\#397](https://github.com/clojerl/clojerl/pull/397) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#394\] Keep meta for generated symbols in syntax quote [\#395](https://github.com/clojerl/clojerl/pull/395) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#387\] Build on windows [\#391](https://github.com/clojerl/clojerl/pull/391) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#363\] Move internal definitions to internal header file [\#390](https://github.com/clojerl/clojerl/pull/390) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#388\] Avoid protocol resolution when possible [\#389](https://github.com/clojerl/clojerl/pull/389) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#384\] Run benchmarks using clojure.main [\#385](https://github.com/clojerl/clojerl/pull/385) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#364\] Change type representation to use maps [\#383](https://github.com/clojerl/clojerl/pull/383) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#381\] Propagate type tag when possible [\#382](https://github.com/clojerl/clojerl/pull/382) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#378\] Remove arbitrary precision functions [\#379](https://github.com/clojerl/clojerl/pull/379) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#376\] Avoid creating a type when using instance? and satisfies? [\#377](https://github.com/clojerl/clojerl/pull/377) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#261\] Sort by [\#375](https://github.com/clojerl/clojerl/pull/375) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#373\] Print a table comparing the results [\#374](https://github.com/clojerl/clojerl/pull/374) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#371\] Binary compile path [\#372](https://github.com/clojerl/clojerl/pull/372) ([jfacorro](https://github.com/jfacorro))
- \[\#366\] Move modules around [\#370](https://github.com/clojerl/clojerl/pull/370) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#206\] Improve apply for var [\#368](https://github.com/clojerl/clojerl/pull/368) ([jfacorro](https://github.com/jfacorro))
- Update benchmarks results [\#367](https://github.com/clojerl/clojerl/pull/367) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#115\] Implement chunked seq [\#365](https://github.com/clojerl/clojerl/pull/365) ([jfacorro](https://github.com/jfacorro))
- clojure.instant: add erlang.util.Date [\#362](https://github.com/clojerl/clojerl/pull/362) ([bensu](https://github.com/bensu))
- fix where/were typo [\#361](https://github.com/clojerl/clojerl/pull/361) ([andrestylianos](https://github.com/andrestylianos))
- \[Closes \#358\] Move unread from IReader to a new IPushbackReader protocol [\#360](https://github.com/clojerl/clojerl/pull/360) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#353\] Remove ratio parsing in reader [\#359](https://github.com/clojerl/clojerl/pull/359) ([jfacorro](https://github.com/jfacorro))
- \[\#237\] Port clojure.core.server [\#357](https://github.com/clojerl/clojerl/pull/357) ([jfacorro](https://github.com/jfacorro))
- Remove erroneous apostrophe [\#355](https://github.com/clojerl/clojerl/pull/355) ([stig](https://github.com/stig))
- \[Closes \#352\] Exception Info [\#354](https://github.com/clojerl/clojerl/pull/354) ([jfacorro](https://github.com/jfacorro))
- \[\#237\] Port clojure.pprint [\#351](https://github.com/clojerl/clojerl/pull/351) ([jfacorro](https://github.com/jfacorro))
- \[\#349\] Dynamic vars that are functions should also check the current binding [\#350](https://github.com/clojerl/clojerl/pull/350) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#347\] Use return\_on in read\_until to avoid complex checks [\#348](https://github.com/clojerl/clojerl/pull/348) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#345\] Force evaluation order when emitting lists [\#346](https://github.com/clojerl/clojerl/pull/346) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#343\] Keep on\_load expressions [\#344](https://github.com/clojerl/clojerl/pull/344) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#341\] Metadata lost [\#342](https://github.com/clojerl/clojerl/pull/342) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#339\] Add multimethods.clje tests from original and fix bugs [\#340](https://github.com/clojerl/clojerl/pull/340) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#337\] Emit functions in defprotocol and don't include callback attributes [\#338](https://github.com/clojerl/clojerl/pull/338) ([jfacorro](https://github.com/jfacorro))
- \[\#335\] Implement the same behaviour for str for collections as in Clojure [\#336](https://github.com/clojerl/clojerl/pull/336) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#327\] Tuple maps [\#334](https://github.com/clojerl/clojerl/pull/334) ([jfacorro](https://github.com/jfacorro))
- \[\#117\] Atoms [\#333](https://github.com/clojerl/clojerl/pull/333) ([jfacorro](https://github.com/jfacorro))
- \[\#237\] Port clojure.xml [\#331](https://github.com/clojerl/clojerl/pull/331) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#162\] Add document with differences from Clojure [\#329](https://github.com/clojerl/clojerl/pull/329) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#323\] Type hints ignored [\#324](https://github.com/clojerl/clojerl/pull/324) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#321\] Implement clojure.repl/source [\#322](https://github.com/clojerl/clojerl/pull/322) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#104 Closes \#314\] Create a type Namespace [\#319](https://github.com/clojerl/clojerl/pull/319) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#305\] Compilation tests [\#318](https://github.com/clojerl/clojerl/pull/318) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#316\] Compile with OTP 20.0-rc2 [\#317](https://github.com/clojerl/clojerl/pull/317) ([jfacorro](https://github.com/jfacorro))
- \[Fixes \#312\] Introduce lexical renaming for underscore [\#313](https://github.com/clojerl/clojerl/pull/313) ([jfacorro](https://github.com/jfacorro))
- \[\#310\] Compile to native [\#311](https://github.com/clojerl/clojerl/pull/311) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#308\] Process time and verbose options in compile script [\#309](https://github.com/clojerl/clojerl/pull/309) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#304\] Don't add on\_load function when there are no expressions [\#307](https://github.com/clojerl/clojerl/pull/307) ([jfacorro](https://github.com/jfacorro))
- \[Fixes \#289\] REPL error beam not found [\#306](https://github.com/clojerl/clojerl/pull/306) ([jfacorro](https://github.com/jfacorro))
- \[Fixes \#302\] Add correct path [\#303](https://github.com/clojerl/clojerl/pull/303) ([jfacorro](https://github.com/jfacorro))
- \[Fix \#300\] Fix elvis warnings [\#301](https://github.com/clojerl/clojerl/pull/301) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#296\] Replace "form\(s\)" for "module\(s\)" [\#299](https://github.com/clojerl/clojerl/pull/299) ([jfacorro](https://github.com/jfacorro))
- \[\#297\] Add .gitattributes with clje extension as Clojure [\#298](https://github.com/clojerl/clojerl/pull/298) ([jfacorro](https://github.com/jfacorro))
- \[Fixes \#293\] Missing location info [\#294](https://github.com/clojerl/clojerl/pull/294) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#286\] Full path for files [\#292](https://github.com/clojerl/clojerl/pull/292) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#283\] Basic documentation [\#290](https://github.com/clojerl/clojerl/pull/290) ([jfacorro](https://github.com/jfacorro))
- \[Fixes \#287\] Handle dashes correctly [\#288](https://github.com/clojerl/clojerl/pull/288) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#284\] Add EPL v1.0 license same as Clojure [\#285](https://github.com/clojerl/clojerl/pull/285) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#232\] Rename clj\_core to clj\_rt [\#282](https://github.com/clojerl/clojerl/pull/282) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#26\] travis-ci badge [\#281](https://github.com/clojerl/clojerl/pull/281) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#26\] travis-ci integration [\#280](https://github.com/clojerl/clojerl/pull/280) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#271\] Change extension from .clj to .clje [\#279](https://github.com/clojerl/clojerl/pull/279) ([jfacorro](https://github.com/jfacorro))
- \[Fix \#277\] Add end\_per\_suite/1 where missing [\#278](https://github.com/clojerl/clojerl/pull/278) ([jfacorro](https://github.com/jfacorro))
- \[\#274\] Fix build [\#276](https://github.com/clojerl/clojerl/pull/276) ([jfacorro](https://github.com/jfacorro))
- \[\#274\] Improve compile escript and Makefile targets [\#275](https://github.com/clojerl/clojerl/pull/275) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#242\] Avoid arglists as erlang list [\#273](https://github.com/clojerl/clojerl/pull/273) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#266\] Make dialyzer happy [\#272](https://github.com/clojerl/clojerl/pull/272) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#264\] Make clojerl directory sticky but still manage to bootstrap [\#270](https://github.com/clojerl/clojerl/pull/270) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#268\] Printable Erlang lists as \#erl"..." [\#269](https://github.com/clojerl/clojerl/pull/269) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#265\] Move files around [\#267](https://github.com/clojerl/clojerl/pull/267) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#245\] Remove references to java in docstrings and code [\#263](https://github.com/clojerl/clojerl/pull/263) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#259\] Avoid generating too many symbols with gensym [\#260](https://github.com/clojerl/clojerl/pull/260) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#257\] Check symbol ns special form [\#258](https://github.com/clojerl/clojerl/pull/258) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#243\] Complete bistring implementation [\#256](https://github.com/clojerl/clojerl/pull/256) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#252\] Add alias for patterns [\#255](https://github.com/clojerl/clojerl/pull/255) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#253\] Migrate to rebar3 [\#254](https://github.com/clojerl/clojerl/pull/254) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#111\] Pattern matching [\#251](https://github.com/clojerl/clojerl/pull/251) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#246\] lazy-seq printing [\#247](https://github.com/clojerl/clojerl/pull/247) ([jfacorro](https://github.com/jfacorro))
- \[\#243\] Simple and incomplete implementation for BitString [\#244](https://github.com/clojerl/clojerl/pull/244) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#233\] Make state or env last arg [\#241](https://github.com/clojerl/clojerl/pull/241) ([jfacorro](https://github.com/jfacorro))
- \[Fixes \#239\] Print unreadable form for non-printable strings [\#240](https://github.com/clojerl/clojerl/pull/240) ([jfacorro](https://github.com/jfacorro))
- \[\#237\] Add clojure.data and its tests [\#238](https://github.com/clojerl/clojerl/pull/238) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#234\] receive [\#236](https://github.com/clojerl/clojerl/pull/236) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#113\] Guards [\#235](https://github.com/clojerl/clojerl/pull/235) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#151\] erl literals [\#231](https://github.com/clojerl/clojerl/pull/231) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#190\] Make all suites use the same logic for all/0 and init\_per\_suite/1 [\#230](https://github.com/clojerl/clojerl/pull/230) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#228\] Rename anno to ann [\#229](https://github.com/clojerl/clojerl/pull/229) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#171\] Compile time eval init exprs [\#227](https://github.com/clojerl/clojerl/pull/227) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#218\] Analyze metadata from vars [\#226](https://github.com/clojerl/clojerl/pull/226) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#224\] Implement IReduce [\#225](https://github.com/clojerl/clojerl/pull/225) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#222\] Renamed clojerl.protocol to clj\_protocol [\#223](https://github.com/clojerl/clojerl/pull/223) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#220\] Rename \*warn-on-type-resolution\* and change the message [\#221](https://github.com/clojerl/clojerl/pull/221) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#185\] Allow 'default' symbol as a type in extend-type [\#219](https://github.com/clojerl/clojerl/pull/219) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#183\] Protocols test should pass [\#217](https://github.com/clojerl/clojerl/pull/217) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#181\] Use nil literal as nil's type [\#216](https://github.com/clojerl/clojerl/pull/216) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#214\] Get var from symbol [\#215](https://github.com/clojerl/clojerl/pull/215) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#212\] Fix failing tests [\#213](https://github.com/clojerl/clojerl/pull/213) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#122\] letfn\* [\#211](https://github.com/clojerl/clojerl/pull/211) ([jfacorro](https://github.com/jfacorro))
- \[\#122\] Emit Core Erlang instead of Abstract Syntax Forms [\#210](https://github.com/clojerl/clojerl/pull/210) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#201\] Sorted collections [\#209](https://github.com/clojerl/clojerl/pull/209) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#195\] Splice block when possible [\#208](https://github.com/clojerl/clojerl/pull/208) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#206\] Rename invoke to apply in clojerl.IFn [\#207](https://github.com/clojerl/clojerl/pull/207) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#204\] Add benchmark target [\#205](https://github.com/clojerl/clojerl/pull/205) ([jfacorro](https://github.com/jfacorro))
- \[\#202\] Reduce runtime overhead [\#203](https://github.com/clojerl/clojerl/pull/203) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#199\] All of clojure.core is copied over from the original [\#200](https://github.com/clojerl/clojerl/pull/200) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#184\] Add compiler options to env [\#198](https://github.com/clojerl/clojerl/pull/198) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#138\] Replace calls to clj\_utils:throw\* for clj\_utils:error\* [\#197](https://github.com/clojerl/clojerl/pull/197) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#172\] Reader bugs when using io-reader [\#196](https://github.com/clojerl/clojerl/pull/196) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#93\] Call clj\_core:boolean/1 in case to simplify emitted expression [\#193](https://github.com/clojerl/clojerl/pull/193) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#191\] Location information missing [\#192](https://github.com/clojerl/clojerl/pull/192) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#188\] Run clojure tests script [\#189](https://github.com/clojerl/clojerl/pull/189) ([jfacorro](https://github.com/jfacorro))
- \[Close \#161\] Handle \_ as a binding symbol [\#187](https://github.com/clojerl/clojerl/pull/187) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#160\] Fix clojure.core/read [\#186](https://github.com/clojerl/clojerl/pull/186) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#175\] Remove already compiled modules [\#182](https://github.com/clojerl/clojerl/pull/182) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#102\] defprotocol [\#180](https://github.com/clojerl/clojerl/pull/180) ([jfacorro](https://github.com/jfacorro))
- \[\#177\] clojure.string [\#178](https://github.com/clojerl/clojerl/pull/178) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#174\] import [\#176](https://github.com/clojerl/clojerl/pull/176) ([jfacorro](https://github.com/jfacorro))
- \[\#124\] deftype and defrecord [\#173](https://github.com/clojerl/clojerl/pull/173) ([jfacorro](https://github.com/jfacorro))
- \[Close \#159\] Add missing metadata to vars [\#169](https://github.com/clojerl/clojerl/pull/169) ([jfacorro](https://github.com/jfacorro))
- \[Fixes \#158\] Metadata analyzed and emitted [\#167](https://github.com/clojerl/clojerl/pull/167) ([jfacorro](https://github.com/jfacorro))
- \[Fixes \#165\] Check if the protocol function doesn't exist [\#166](https://github.com/clojerl/clojerl/pull/166) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#163\] Remove protocol prefix [\#164](https://github.com/clojerl/clojerl/pull/164) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#84\] Implement inst and uuid default readers [\#157](https://github.com/clojerl/clojerl/pull/157) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#129\] Add clojure.test and all necessary namespaces [\#155](https://github.com/clojerl/clojerl/pull/155) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#105\] IO feature [\#154](https://github.com/clojerl/clojerl/pull/154) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#148\] Metadata ruins comparison [\#152](https://github.com/clojerl/clojerl/pull/152) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#149\] Simple benchmarks [\#150](https://github.com/clojerl/clojerl/pull/150) ([jfacorro](https://github.com/jfacorro))
- \[Fixes \#144\] Strip meta of dispatch value when registering and when dispatching [\#147](https://github.com/clojerl/clojerl/pull/147) ([jfacorro](https://github.com/jfacorro))
- \[Fixes \#145\] Don't check if var is private when resolving for 'var' [\#146](https://github.com/clojerl/clojerl/pull/146) ([jfacorro](https://github.com/jfacorro))
- \[Fix \#142\] Handle the case where a string is returned from re-find [\#143](https://github.com/clojerl/clojerl/pull/143) ([jfacorro](https://github.com/jfacorro))
- \[Fixes \#140\] Add update function in scope that only modifies existing key [\#141](https://github.com/clojerl/clojerl/pull/141) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#82\] Use \_ to catch all classes of exceptions [\#137](https://github.com/clojerl/clojerl/pull/137) ([jfacorro](https://github.com/jfacorro))
- \[Fixes \#135\] Store value in dynamic bindings as an {ok, Value} tuple [\#136](https://github.com/clojerl/clojerl/pull/136) ([jfacorro](https://github.com/jfacorro))
- \[Fixes \#128\] Add dispatch value as the suffix [\#134](https://github.com/clojerl/clojerl/pull/134) ([jfacorro](https://github.com/jfacorro))
- \[Fixes \#132\] Fixed bugs [\#133](https://github.com/clojerl/clojerl/pull/133) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#130\] Regex functions [\#131](https://github.com/clojerl/clojerl/pull/131) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#73\] Private defn [\#127](https://github.com/clojerl/clojerl/pull/127) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#123\] case [\#126](https://github.com/clojerl/clojerl/pull/126) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#92\] Multimethods [\#125](https://github.com/clojerl/clojerl/pull/125) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#99\] File and line information in emitted forms [\#112](https://github.com/clojerl/clojerl/pull/112) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#38\] Allow pattern matching or destructuring [\#110](https://github.com/clojerl/clojerl/pull/110) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#108\] Wrong analysis on tuples [\#109](https://github.com/clojerl/clojerl/pull/109) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#89\] fully functional ns macro [\#107](https://github.com/clojerl/clojerl/pull/107) ([jfacorro](https://github.com/jfacorro))
- \[\#89\] Fully functional ns macro namespaces ets [\#106](https://github.com/clojerl/clojerl/pull/106) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#64\] Removed erl\_fun reader dispatch [\#103](https://github.com/clojerl/clojerl/pull/103) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#62\] File info in errors [\#101](https://github.com/clojerl/clojerl/pull/101) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#61\] Keep dynamic bindings in the process dictionary [\#100](https://github.com/clojerl/clojerl/pull/100) ([jfacorro](https://github.com/jfacorro))
- \[\#57\] Simple naive REPL [\#98](https://github.com/clojerl/clojerl/pull/98) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#91\] Remove usage of erl syntax [\#97](https://github.com/clojerl/clojerl/pull/97) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#74\] Lazy seq [\#95](https://github.com/clojerl/clojerl/pull/95) ([jfacorro](https://github.com/jfacorro))
- \[\#86\] Avoid multiple compilation by faking fns [\#88](https://github.com/clojerl/clojerl/pull/88) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#44\] Require [\#87](https://github.com/clojerl/clojerl/pull/87) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#58\] Tuple should implement ISequential, Counted and Seqable [\#85](https://github.com/clojerl/clojerl/pull/85) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#22\] Read tagged literals [\#83](https://github.com/clojerl/clojerl/pull/83) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#80\] Analyze and emit var [\#81](https://github.com/clojerl/clojerl/pull/81) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#77\] try..catch..finally [\#79](https://github.com/clojerl/clojerl/pull/79) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#76\] Parse recur. Emit loop and recur. [\#78](https://github.com/clojerl/clojerl/pull/78) ([jfacorro](https://github.com/jfacorro))
- \[\#70\] Macros can't be used in the same ns [\#75](https://github.com/clojerl/clojerl/pull/75) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#40\] Replace symbols for strings in Var's internal representation [\#72](https://github.com/clojerl/clojerl/pull/72) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#65\] HOF returning fn not working [\#71](https://github.com/clojerl/clojerl/pull/71) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#56\] \[Closes \#66\] [\#69](https://github.com/clojerl/clojerl/pull/69) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#54\] Show line and column information in all errors warnings [\#63](https://github.com/clojerl/clojerl/pull/63) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#53\] Look var in module info \(also improved compilation process\) [\#60](https://github.com/clojerl/clojerl/pull/60) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#52\] Test all data types [\#59](https://github.com/clojerl/clojerl/pull/59) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#15\] Keep track of line col info while reading [\#55](https://github.com/clojerl/clojerl/pull/55) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#43\] emitter: let [\#51](https://github.com/clojerl/clojerl/pull/51) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#49\] Provide options to compiler [\#50](https://github.com/clojerl/clojerl/pull/50) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#46\] Create dummy ISequential protocol [\#48](https://github.com/clojerl/clojerl/pull/48) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#42\] Remove ISeq implementation Map, Set and Vector [\#47](https://github.com/clojerl/clojerl/pull/47) ([jfacorro](https://github.com/jfacorro))
- \[\#37\] def: add meta from symbol [\#45](https://github.com/clojerl/clojerl/pull/45) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#30\] Emitter invoke and fn [\#41](https://github.com/clojerl/clojerl/pull/41) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#32\] Keywords as atoms [\#36](https://github.com/clojerl/clojerl/pull/36) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#23\] Add a reader dispatch for tuples \#\[\] [\#34](https://github.com/clojerl/clojerl/pull/34) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#24\] Change protocol impl resolution [\#33](https://github.com/clojerl/clojerl/pull/33) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#10 Closes \#29\] Analyze let & loop [\#28](https://github.com/clojerl/clojerl/pull/28) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#8\] Analyze if expressions [\#27](https://github.com/clojerl/clojerl/pull/27) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#6\] Analyzer: parse fn\* \[Closes \#9\] parse do [\#25](https://github.com/clojerl/clojerl/pull/25) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#16\] README with some information [\#21](https://github.com/clojerl/clojerl/pull/21) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#1\] Missing reader dispatches [\#20](https://github.com/clojerl/clojerl/pull/20) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#13\] Added read\_fold function [\#18](https://github.com/clojerl/clojerl/pull/18) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#5\] analyzer: parse quote [\#17](https://github.com/clojerl/clojerl/pull/17) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#11\] analyzer tests [\#14](https://github.com/clojerl/clojerl/pull/14) ([jfacorro](https://github.com/jfacorro))
- \[Closes \#2\] Add context and top level attr [\#12](https://github.com/clojerl/clojerl/pull/12) ([jfacorro](https://github.com/jfacorro))
- \[\#3\] Analyer def [\#4](https://github.com/clojerl/clojerl/pull/4) ([jfacorro](https://github.com/jfacorro))
* *This Changelog was automatically generated by [github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)*