José Valim
f8b019c7c8
Move to the new expansion on the front-end
2013-12-28 23:14:55 +01:00
José Valim
c4419268b8
Move module compilation to rely on elixir_exp
2013-12-28 15:01:31 +01:00
José Valim
ade26dedd8
Work on Elixir expressions rather than forms
2013-12-28 11:47:44 +01:00
José Valim
219ded1b91
Rename DispatchTracker to LocalsTracker
2013-12-22 09:20:41 +01:00
José Valim
63fdbfb8cf
Implement Module.eval_quoted in Elixir
2013-11-25 12:59:14 +01:00
José Valim
e0354005ea
Simplify get_opt(internal) handling
2013-11-25 09:06:01 +01:00
José Valim
be71239b7c
Move more code to Elixir land, simplify serialization
2013-11-24 13:28:50 +01:00
José Valim
a8bdd19a03
Implement defmodule in Elixir
2013-11-24 11:53:41 +01:00
José Valim
7d26bfbfad
Move remaining functions to elixir_env
2013-11-22 23:13:26 +01:00
José Valim
f8380e9dcd
Get rid of unused _@MODULE var
2013-11-22 22:41:30 +01:00
José Valim
c2243e2c28
Make module compilation work with elixir expressions
2013-11-22 21:41:59 +01:00
José Valim
260be7c8ea
Start porting elixir_macros to pure elixir
2013-11-22 12:55:51 +01:00
José Valim
dcf6ca1003
Ensure LexicalTracker doesn't fail accross lexical contexts
2013-11-03 18:02:03 +01:00
José Valim
5bd12f9cb9
Move lexical tracker to scope
2013-11-01 16:03:12 +01:00
José Valim
3c151d5357
Add Kernel.LexicalTracker
2013-11-01 16:03:12 +01:00
José Valim
174f031efd
Eval should take into account other contexts
2013-10-30 16:15:19 +01:00
José Valim
bae4c1c4c8
Merge pull request #1750 from elixir-lang/jv-protocols
...
Implement protocol consolidation
2013-10-10 03:45:30 -07:00
José Valim
f510d4c3df
Normalize all stacktrace under the same name and improve IEx errors
...
Kudos to @pragdave for suggesting some those improvements and
providing an initial implementation in pull request #1752 .
2013-10-08 20:47:21 +02:00
José Valim
3cf9774b92
Improve warn on invalid expressions
2013-10-07 20:16:54 +02:00
José Valim
5cb06e9640
Allow a module to force its debug_info to be compiled
2013-10-07 10:16:02 +02:00
José Valim
4b317a75d8
Save typespecs attributes with proper line numbers, closes #1613
2013-09-29 13:15:33 +02:00
José Valim
c3bdfc9ba7
No need to mark typedoc as persisted if we are manually persisting it
2013-09-10 12:46:22 -03:00
Peter Minten
a5ea8a63bf
Use typedoc attribute to store typedocs.
...
This requires a bit of a workaround because `typedoc` is also used to store the
doc of the next type to be defined. We store typedocs in the docs table when
types are defined and later filter them out and put them into `typedoc`.
2013-08-22 16:30:24 +02:00
Peter Minten
1be3335f0b
Add a @typedoc attribute to document types
...
Also a new `Kernel.Typespec.beam_typedocs` function to get the typedoc
information.
2013-08-22 16:30:24 +02:00
José Valim
0510512375
Deprecate to_binary in favor of to_string
...
We also rename Binary.Chars to String.Chars.
As Binary.Chars was the protocol used for interpolation,
it is semantically correct to have a protocol that works
on strings, instead of raw binaries.
2013-08-22 12:19:30 +02:00
José Valim
8b02a2a7a0
Convert external functions into quoted expressions
2013-08-20 23:52:00 +02:00
José Valim
db47bd56b4
Add Path.relative_to_cwd and rely on it when generating stacktraces
2013-08-14 12:36:54 +02:00
José Valim
cea31f69dc
Review and deprecate list <-> binary conversion
2013-08-14 11:16:37 +02:00
José Valim
c6f9287ce7
Only raise on local macro conflicts if it was previously defined
2013-08-02 09:53:30 +02:00
José Valim
155398c445
Warn for unmatched docs
2013-07-23 23:37:36 +02:00
José Valim
2e3c4ee1c9
Support each_module callback on ParallelCompiler
2013-07-19 22:10:30 +02:00
José Valim
6034738d48
Document that on_definition can only be a function, closes #1431
2013-07-16 12:56:29 +02:00
José Valim
99da29b430
Ensure eval callbacks gets a fresh vars dict
2013-07-10 16:04:36 +02:00
José Valim
ffc91e3004
Rename Kernel.LocalsTracker to Module.DispatchTracker
2013-05-26 14:39:02 +02:00
José Valim
c3e7543e48
Extract imports handling to locals tracker (soon to be renamed)
2013-05-26 14:39:02 +02:00
José Valim
c3dd4006b0
Reduce atom footprint when compiling an elixir module
2013-05-25 16:37:33 +02:00
José Valim
e05448afd7
Remove *_table terminolgy in favor of setup/cleanup
2013-05-25 16:02:19 +02:00
José Valim
d757f31ccd
Unused functions with cyclic dependencies are now also warned as unused
...
Closes #1105
2013-05-25 00:14:37 +02:00
José Valim
2c98c0999d
An Elixir module now translates to Elixir.Module instead of Elixir-Module
2013-05-23 14:36:56 +02:00
José Valim
d9b98a62c8
Check if the module is in the same context before checking if it is open
2013-05-19 19:42:13 +02:00
José Valim
23cbf3e853
Support options from macros and @attributes in import, alias and require
2013-05-13 21:51:07 -06:00
José Valim
f38cf28cbd
Store in the AST if contents come from a quoted expression
...
This provides a more robust way of checking from where
the original expressions are coming from compared to the
lexical check_clauses field we had in elixir_scope.
A direct consequence of this commit is that, the following
code:
defrecord Sample, [:hello] do
import List
end
Now raises a warning if the List import is not used,
where it didn't previously.
2013-05-13 15:56:15 -06:00
José Valim
9118b36069
Improve warnings related to default arguments
...
* "default arguments in some_fun/3 are never used"
* "the first default argument in some_fun/3 is never used"
* "the first 2 default arguments in some_fun/3 are never used"
Closes #929
2013-05-12 19:31:34 -06:00
José Valim
65f7d56a8e
Don't warn on unused imports
2013-05-06 20:17:31 -06:00
José Valim
a93264be81
Private on_load functions should not trigger unused warning
2013-05-06 11:31:05 -06:00
José Valim
ddb87a96ca
Private functions used by private macros no longer emit an unused warning, closes #885
2013-05-05 21:59:40 -06:00
José Valim
87d57a38a3
Do not go through eval if there is nothing to evaluate
2013-04-21 18:03:09 -06:00
José Valim
b96c3c52ae
Remove check_require in favor of a meta tag
2013-04-13 17:19:19 -07:00
José Valim
f7cad1cffc
Improve error messages
2013-03-27 09:54:00 -06:00
José Valim
22da62600e
Record rewriter should also optimize in-module calls
2013-02-25 09:55:41 -07:00