José Valim
6a6ba9f50d
Remove deprecated code
2014-08-02 22:35:57 +02:00
José Valim
aeefd59b15
Add Logger
2014-07-30 19:46:26 +02:00
José Valim
6272b60d36
Ensure all elixir dependencies are started before hand, closes #2542
2014-07-16 12:48:46 +02:00
José Valim
999a535603
Manually call check_command before eval, closes #2449
2014-07-10 11:44:03 +02:00
José Valim
7fabf32d9e
Do not crash if applications are already started
2014-07-04 12:13:53 +02:00
James Fish
39cd4a6594
Fix unmatched returns dialyzer warnings
2014-07-04 02:45:16 +01:00
José Valim
aa01dd1fc1
Ensure derived protocols are defined with a file
2014-06-24 11:28:27 +02:00
José Valim
3ec0d20621
Only set encoding when there is noshell, closes #2432
2014-06-22 14:16:40 +02:00
José Valim
3bb8e17e9e
Add iodata_to_binary and chardata_to_string to IO
2014-05-17 13:06:40 +02:00
José Valim
c435dbe38d
Convert #elixir_env to a struct too
2014-04-30 16:32:13 +02:00
James Fish
68d1bd9308
Fix stacktraces for :elixir.eval_forms/4
...
:erl_eval and :eval_bits can call :erlang.raise/3 with an incomplete
stacktrace, so extend the stacktrace when this occurs.
Mailing list thread:
https://groups.google.com/forum/#!topic/elixir-lang-core/cpSlgBjrRBQ
2014-04-29 17:57:39 +01:00
José Valim
56f15d9f4e
Do not add spaces after { and before }
...
This makes the source code consistent with the result
returned by inspect/2.
2014-04-21 19:06:35 +02:00
José Valim
ea9b686b28
Emit a warning if running on latin1
2014-04-21 12:15:27 +02:00
José Valim
6624f31472
Merge branch 'jv-char-data'
...
Conflicts:
lib/eex/lib/eex/tokenizer.ex
lib/elixir/lib/file.ex
lib/elixir/lib/kernel.ex
lib/elixir/lib/record/extractor.ex
lib/elixir/lib/string.ex
lib/ex_unit/lib/ex_unit/doc_test.ex
lib/mix/lib/mix/archive.ex
lib/mix/lib/mix/dep/fetcher.ex
lib/mix/lib/mix/dep/umbrella.ex
2014-04-21 08:38:48 +02:00
José Valim
03189d05b3
Properly set standard_error to unicode
2014-04-10 19:54:34 +02:00
José Valim
c37a244d66
Add Code.eval_file/2
2014-03-27 12:31:00 +01:00
José Valim
233a3ed4ec
Change the Path module to work only with char_data and always return binaries
2014-02-22 19:33:37 +01:00
José Valim
83c93beaa6
Get rid of environment macro counter in favor of a global one
2013-12-30 11:45:23 +01:00
José Valim
d4da5be4ee
Remove more duplication in between expansion and translation
2013-12-29 16:40:11 +01:00
José Valim
b03e2173a5
Rename translate_each to translate and temp_vars to match_vars
2013-12-29 16:08:58 +01:00
José Valim
0e627c9b09
Use expansion on function bodies
2013-12-29 10:54:10 +01:00
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
63fdbfb8cf
Implement Module.eval_quoted in Elixir
2013-11-25 12:59:14 +01:00
José Valim
f8380e9dcd
Get rid of unused _@MODULE var
2013-11-22 22:41:30 +01:00
José Valim
174f031efd
Eval should take into account other contexts
2013-10-30 16:15:19 +01: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
a7ee38ae9e
Detect windows symlinks on File.rm_rf
2013-08-11 11:43:47 +02:00
José Valim
99da29b430
Ensure eval callbacks gets a fresh vars dict
2013-07-10 16:04:36 +02:00
José Valim
4048e542d9
cp_r should pinpoint place of failure on errors
2013-06-18 19:52:06 +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
Alexei Sholik
c634a5d232
Add :elixir.scope_for_eval/2 convenience function
2013-05-22 15:57:36 +03:00
José Valim
0e8bac7e9e
IO.gets and IO.getb now return binaries when reading from stdio
2013-05-08 15:13:06 -06:00
José Valim
01cc9ed0ec
Uncomment features related to unquote fragments
2013-04-12 18:14:34 -07:00
Yurii Rashkovskii
a1a576e9d1
Implement as_boolean/1 type
...
Closes #798
2013-02-03 10:40:35 -08:00
José Valim
f380d0c93f
Export elixir:translate_forms/3
2013-01-21 19:50:07 -07:00
José Valim
9e37412b7b
Provide an endpoint for translating elixir forms
2013-01-21 19:34:29 -07:00
José Valim
89cbe93bba
The AST now allows metadata to be attached to each node
...
This means the second item in the AST is no longer an integer
(representing the line), but a keywords list. Code that relies
on the line information from AST or that manually generate AST
nodes need to be properly updated.
2013-01-21 15:42:03 -07:00
José Valim
17a2ce9766
Ensure requires are sorted on Code.eval
2013-01-11 23:29:44 +01:00
José Valim
b32f6ef51f
Keep variables in a single dictionary
...
This ensures we give the same treatment to quoted
and non-quoted variables.
2012-12-02 12:22:10 +01:00
José Valim
a061528731
Ensure IEx runs only after Elixir's CLI process its options
2012-11-30 17:07:12 +01:00
José Valim
b25d5f27d7
Ensure IEx boots fast and with Elixir available, closes #673
2012-11-28 23:19:00 +01:00
José Valim
c3b58eef16
file needs to be a binary
2012-11-15 16:30:55 +01:00
José Valim
32764b3370
Copy all __ENV__ information on eval
2012-11-15 10:01:18 +01:00
José Valim
01f9518899
Keep user's given name when rebinding variables
...
The following code:
counter = 1
counter = 2
Is now rewritten internally to:
counter = 1
counter@1 = 2
Which gives us a couple things:
1. Better debugging
2. We can now show warnings for rebound variables not used
Elixir also keeps `_@` prefix to store internal variables
(for example, `_@1`, `_@MODULE`, etc).
Closes #607 .
2012-11-01 12:37:08 +01:00
José Valim
f7490bd5af
Provide faster, with docs and debug info first compilation
2012-10-30 10:01:09 +01:00
Yurii Rashkovskii
154e73b0d4
Add String.t() and char_list() types, discourage use of string() because it might lead to confusion.
...
Note, however, that dialyzer will often talk about string() anyway.
Addresses #588
2012-10-29 01:55:30 -07:00
José Valim
833a153b33
Avoid dispatching to locals from compiled structures
2012-10-29 00:45:32 +01:00