1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-11-23 15:16:54 -05:00
Commit graph

980 commits

Author SHA1 Message Date
Ryan Dahl
c113df1bb8
Process source maps in Rust instead of JS (#1280)
- Improves speed and binary size significantly.
- Makes deno_last_exception() output a JSON structure.
- Isolate::execute and Isolate::event_loop now return
  structured, mapped JSError objects on errors.
- Removes libdeno functions:
  libdeno.setGlobalErrorHandler()
  libdeno.setPromiseRejectHandler()
  libdeno.setPromiseErrorExaminer()

In collaboration with Ryan Dahl.
2018-12-06 23:05:36 -05:00
Kitson Kelly
568ac0c902 Add ASCII support to TextDecoder 2018-12-06 18:45:10 -05:00
Kitson Kelly
6cc89b9e27 Use alternate TextEncoder/TextDecoder implementation (#1281)
This is faster and smaller.
2018-12-06 10:01:15 -08:00
F001
60c008d23b Isolate::from_raw_ptr and other cleanups.
`Isolate::from_void_ptr` is renamed to `from_raw_ptr`, to keep
consistency with std libs.

It is changed to `unsafe` function, because it can't guarantee that the
input is valid. This guarantee should be provided by the caller.

Its return type is changed to `&Isolate`, because `&mut Isolate` type
requires that no other aliases co-exist in this period of time, this
does not seem true. So I changed most of the methods to accept shared
reference `&Isolate`. It is easier to reason about the correctness of
`unsafe` blocks. As long as these shared references are in the same
thread, these `unsafe` codes are probably correct.
2018-12-05 00:14:53 -08:00
Ryan Dahl
45320beca8 Upgrade flatbuffers to 80d148 2018-12-04 17:22:52 -08:00
Ryan Dahl
d70b04c6d7
Add deno_config struct for isolate creation. (#1277)
In preperation for adding other callbacks to libdeno.
2018-12-04 15:06:20 -08:00
F001
30420ad317 Remove static lifetime bound in OpCreator (#1276)
The main purpose of this PR is to remove the `'static` lifetime bound in

type OpCreator =
  fn(state: &Arc<IsolateState>, base: &msg::Base, data: &'static mut [u8])
    -> Box<Op>;

The reason is simple: it is plain wrong, the `data` is actually not `'static`. It is created when the message is sent from C side, and will be recycled when the message is responded. It violates the definition of `'static` lifetime.

If someone save this pointer somewhere else, and reuse it later again, uninitialized memory could be accessed. This kind of memory unsafety does not happen yet because the logic is carefully organized in this project. Lifetime constraints are maintained by code convention. It could be more robust if we can express this constraint by Rust's type system.

Basic idea: tie buffer's lifetime to an object's lifetime, a.k.a, RAII. The type `deno_buf` is pretty suitable for this job.
2018-12-04 13:21:02 -08:00
Ryan Dahl
0bec0fa594 Remove leaks from snapshot_creator 2018-12-03 19:34:01 -08:00
F001
9e839b7e23 Avoid memory leak (#1265) 2018-12-03 19:07:34 -08:00
Kevin (Kun) "Kassimo" Qian
f6c841a6cd Turn off kPromiseResolvedAfterResolved warning 2018-12-03 16:30:08 -08:00
Ryan Dahl
8373046719 Add LSAN build to travis.
For now it only runs test_cc and has to filter out a test which leaks.
However we will expand this over time until the entire build is LSAN clean.
2018-12-03 15:31:06 -08:00
Ryan Dahl
f25220b2cf Fix test_cc memory leaks.
These were discovered using the LSAN.
http://dev.chromium.org/developers/testing/leaksanitizer
2018-12-03 15:31:06 -08:00
Ryan Dahl
b39f4c146e gn snapshot template's target_name should be target 2018-12-03 13:44:21 -08:00
Ryan Dahl
f727214db0 Use include_bytes! instead of incbin.
This is the second attempt at this patch. The first version was reverted
in 2ffd78daf9

The problem, I suspect, was that the snapshot was represented as a
source_set, which inserted a node into the dependency tree.
include_bytes does properly insert the snapshot into rustc's depfile but
the use of source_set confused gn. Now the that the deno executable has
the create_deno_snapshot as a direct dependency, changes will be
propagated.
2018-12-03 13:44:21 -08:00
Bert Belder
7d02971c2c
third_party: symlink //third_party/v8/build => //build 2018-12-03 12:14:05 -08:00
Bert Belder
6aa02f1fd9
.gitattributes: add symlink target types
This is a first step toward removing the fix_symlinks() hack from
tools/third_party.py.
2018-12-03 11:34:17 -08:00
Bert Belder
e5d1ac8074
.gitattributes: not all files are text 2018-12-03 11:33:58 -08:00
kyraNET
7c6479e28f feat: Support for bigints in console 2018-11-30 22:37:26 -08:00
Kyra
a05d9aaead doc: Remove TS and V8 versions from README file (#1258) 2018-11-30 22:36:48 -08:00
Ryan Dahl
5d161f366f Cargo and GN should build into same directory.
Currently gn builds into "target/debug"
however cargo tells gn to build into
"target/debug/build/deno-26d2b5325de0f0cf/out"
This patch changes it so that they both build into "target/debug".
2018-11-30 16:34:10 -08:00
Ryan Dahl
b5c6bfa0c8 v0.2.1
- Allow async functions in REPL (#1233)
- Handle Location header relative URI (#1240)
- Add deno.readAll() (#1234)
- Add Process.output (#1235)
- Upgrade to TypeScript 3.2.1
- Upgrade crates: tokio 0.1.13, hyper 0.12.16, ring 0.13.5
2018-11-30 16:28:27 -08:00
Ryan Dahl
b7178e1704 Upgrade Prettier to support BigInt syntax in TS 2018-11-30 16:26:53 -08:00
Ryan Dahl
3846384888 Upgrade Rust crates 2018-11-30 15:07:13 -08:00
Ryan Dahl
daa84646e1 travis: test rust version before rustup 2018-11-30 15:07:13 -08:00
Ryan Dahl
c5d8cf8eb6 Use pylint. 2018-11-30 11:33:45 -08:00
DanSnow
d43a4be0d2 Add Process.output (#1235) 2018-11-30 10:44:05 -08:00
DanSnow
e749b37b7c Add deno.readAll() (#1234) 2018-11-30 09:58:31 -08:00
Ryan Dahl
122ccce89a Fix flaky REPL test. 2018-11-30 09:23:04 -08:00
Andy Hayden
aab02805dd clippy fixes (#1250) 2018-11-30 00:30:49 -08:00
Kitson Kelly
17994d4542 Upgrade to TypeScript 3.2 2018-11-29 23:37:28 -08:00
Ryan Dahl
cc126528f0
Add prebuilt/win/v8_debug.lib (#1249)
The windows debug build was broken due to libc link errors.
2018-11-29 23:25:59 -08:00
Ryan Dahl
1ac2934604 Make //build a git submodule
So we can float patches before sending them upstream.
https://github.com/denoland/chromium_build

Remove build_extra/toolchain
2018-11-29 23:12:38 -08:00
F001
b6fda735ee Replace mutex by atomics (#1238) 2018-11-29 19:03:00 -08:00
Kevin (Kun) "Kassimo" Qian
286e76d8c1 Handle Location header relative URI (#1240) 2018-11-29 19:01:01 -08:00
Ryan Dahl
84a1b4d793 Move libdeno build config to libdeno/BUILD.gn 2018-11-29 17:46:09 -08:00
Ryan Dahl
ea4580f337 Fix mac debug build. 2018-11-29 17:46:09 -08:00
Andy Hayden
e6309b78b0 Cleanup setTimeout repl test and alphabetize tests 2018-11-29 11:53:17 -08:00
Kevin (Kun) "Kassimo" Qian
09aa9b9698 REPL unblock event loop AND fix REPL setTimeout fire problems 2018-11-28 15:25:30 -08:00
Ryan Dahl
89096c9210 Use prebuilt V8 library by default.
This still retains the ability to build V8 from scratch, with an number
of configurations. The prebuilt binaries were created using

DENO_BUILD_MODE=release ./tools/build.py v8
2018-11-27 15:47:31 -08:00
Ryan Dahl
65cce40a89 gitignore vim .swp files 2018-11-27 15:47:31 -08:00
Ryan Dahl
60a3b98ba0 Don't use use_custom_libcxx=false on travis. 2018-11-27 15:47:31 -08:00
Bartek Iwańczuk
b183b01c8e add test for Buffer edge case 2018-11-27 13:14:24 -08:00
Ryan Dahl
9ca92bd51b
Add update to changelog (#1227) 2018-11-27 12:14:30 -08:00
Ryan Dahl
570269b73d Don't use snapshot for src/isolate.rs tests. 2018-11-27 11:33:23 -08:00
Ryan Dahl
a25497fb66 Disable flaky fetch tests. 2018-11-27 11:33:23 -08:00
Thomas Beirne
9645249f1f Typo fixes in Docs.md
Just fixing a couple minor typos

- formates -> formats
- configuation -> configuration
2018-11-26 16:58:42 -05:00
Ryan Dahl
2ffd78daf9 Revert "Use include_bytes! instead of incbin. (#1182)"
Reverting because this is causing Appveyor to be red. However
I hope we can reintroduce include_bytes! soon in a way that
works on windows. Fixes #1208.

This reverts commits 96c3641fff
and 92e404706b.
2018-11-23 11:26:36 -08:00
Kitson Kelly
3d03f5b0cb Split Runner from Compiler 2018-11-20 08:46:56 -08:00
Ryan Dahl
3597d6859c Use short install links. 2018-11-17 09:02:31 +08:00
Ryan Dahl
d083f7271b v0.2.0
Changes since v0.1.12:
- First pass at running subprocesses (#1156)
- Improve flag parsing (#1200)
- Improve fetch() (#1194 #1188 #1102)
- Support shebang (#1197)
2018-11-16 13:23:50 +08:00