profile
viewpoint

pull request commentdenoland/deno

perf: eager poll async ops in Isolate

Very nice work @bartlomieju! This PR has proven significant perf gains in the http server benchmark and throughput benchmark:

Screen Shot 2019-10-16 at 3 38 26 PM

Screen Shot 2019-10-16 at 3 38 39 PM

However it has increased tail latency. @bartlomieju's subsequent #3128 has mediated it to reasonable levels:

Screen Shot 2019-10-16 at 3 38 39 PM

It's worth noting that our benchmark page is generated inside Github Actions, which are perhaps not the best servers to undertake CPU heavy measurements. On the benchmarks page, deno_tcp is shown as performing better than node_tcp. On my own machine, when I benchmark them, node_tcp is still significantly better:

deno_tcp:

> wrk http://127.0.0.1:4500
Running 10s test @ http://127.0.0.1:4500
  2 threads and 10 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency     0.89ms    6.85ms 114.82ms   98.91%
    Req/Sec    19.33k     2.81k   22.69k    87.00%
  384687 requests in 10.00s, 18.71MB read
Requests/sec:  38461.11
Transfer/sec:      1.87MB

node_tcp:

> wrk http://127.0.0.1:4544
Running 10s test @ http://127.0.0.1:4544
  2 threads and 10 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency   219.12us  343.96us  10.19ms   97.11%
    Req/Sec    24.81k     4.84k   38.29k    80.00%
  493490 requests in 10.00s, 24.00MB read
Requests/sec:  49333.27
Transfer/sec:      2.40MB

So there is still work to do. We will be able to upgrade to Tokio's new scheduler in the coming weeks, which should shed some light on how much of this overhead is due to our dependencies.

bartlomieju

comment created time in 3 hours

pull request commentdenoland/deno

std: Move fs/path to the top-level

This patch resulted in an increase in the bundle size of file_server.ts ... I'm not sure why.

Screen Shot 2019-10-16 at 3 34 49 PM

nayeemrmn

comment created time in 3 hours

push eventdenoland/deno

Nayeem Rahman

commit sha f51dcc12d7a75a677529d63eb53d7a577d5b9289

std: Move fs/path to the top-level (#3100)

view details

push time in 4 hours

PR merged denoland/deno

std: Move fs/path to the top-level

Moved from https://github.com/denoland/deno_std/pull/624. Closes https://github.com/denoland/deno_std/issues/623.

  • Move fs/path to the top-level.
  • Remove fs/path.ts.
  • Extract fs/expand_glob.ts from path/glob.ts.
+323 -305

2 comments

57 changed files

nayeemrmn

pr closed time in 4 hours

issue closeddenoland/deno_std

fs export structure

To access everything in fs, you have to import from:

  • fs/mod.ts
  • fs/path.ts (fs/path/mod.ts + fs/path/interface.ts)
  • fs/path/constants.ts

These are all used from outside of fs.

fs/path/mod.ts should re-export everything public in fs/path/constants.ts.

fs/mod.ts should also have to re-export fs/path.ts, but I favour making fs/path top-level.

That would leave:

  • fs/mod.ts
  • path/mod.ts

Some exports should be moved from path to fs, namely EOL and isWindows... if dependency cycles are okay.

closed time in 4 hours

nayeemrmn

Pull request review commentdenoland/deno

Implemented new open mode in files

 export type OpenMode =  * @internal  */ export function create(filename: string): Promise<File> {-  return open(filename, "w+");+  return open(filename, {+    read: true,+    create: true,+    write: true,+    truncate: true+  });+}++/** Check if OpenMode is set to something that is valid.+ *  @returns Tuple representing if openMode is valid and error message if it's not+ *  @internal+ */+function checkOpenMode(mode: OpenMode): [boolean, string] {+  const allOptionsAreFalse =+    Object.values(mode).filter(val => val == true).length === 0;+  const truncateOptionWithoutWriteAccess = mode.truncate && !mode.write;+  const createOrCreateNewWithoutWriteOrAppend =+    (mode.create || mode.createNew) && !(mode.write || mode.append);+  if (allOptionsAreFalse)+    return [false, "OpenMode require at least one option to be true"];+  if (truncateOptionWithoutWriteAccess)+    return [false, "Truncate option require write accesss"];+  if (createOrCreateNewWithoutWriteOrAppend)+    return [false, "Create or create new requires write or append access"];+  return [true, ""];+}++/** Converts OpenModeLegacy to Legacy+ *  @internal+ */+function convertOpenModeLegacy(mode: OpenModeLegacy): OpenMode {+  const r = {+    read: true+  };+  const rplus = {+    read: true,+    write: true+  };+  const w = {+    write: true,+    truncate: true,+    create: true+  };+  const wplus = {+    write: true,+    truncate: true,+    create: true,+    read: true+  };+  const a = {+    append: true,+    create: true+  };+  const aplus = {+    append: true,+    create: true,+    read: true+  };+  const x = {+    write: true,+    createNew: true+  };+  const xplus = {+    write: true,+    createNew: true,+    read: true+  };++  const map = {};+  map["r"] = r;+  map["r+"] = rplus;+  map["w"] = w;+  map["w+"] = wplus;+  map["a"] = a;+  map["a+"] = aplus;+  map["x"] = x;+  map["x+"] = xplus;

I think this can all be shortened up and made more readable by not declaring variables, but rather

const legacyMap = {
  "r": { read: true},
  "w": { write: true},
  // ...
};

function convertOpenModeLegacy(mode: OpenModeLegacy): OpenMode {
  return legacyMap[mode];
}

mhvsa

comment created time in 5 hours

Pull request review commentdenoland/deno

Implemented new open mode in files

 export type OpenMode =  * @internal  */ export function create(filename: string): Promise<File> {-  return open(filename, "w+");+  return open(filename, {+    read: true,+    create: true,+    write: true,+    truncate: true+  });+}++/** Check if OpenMode is set to something that is valid.+ *  @returns Tuple representing if openMode is valid and error message if it's not+ *  @internal+ */+function checkOpenMode(mode: OpenMode): [boolean, string] {+  const allOptionsAreFalse =+    Object.values(mode).filter(val => val == true).length === 0;+  const truncateOptionWithoutWriteAccess = mode.truncate && !mode.write;+  const createOrCreateNewWithoutWriteOrAppend =+    (mode.create || mode.createNew) && !(mode.write || mode.append);+  if (allOptionsAreFalse)+    return [false, "OpenMode require at least one option to be true"];+  if (truncateOptionWithoutWriteAccess)+    return [false, "Truncate option require write accesss"];+  if (createOrCreateNewWithoutWriteOrAppend)+    return [false, "Create or create new requires write or append access"];+  return [true, ""];+}++/** Converts OpenModeLegacy to Legacy+ *  @internal+ */+function convertOpenModeLegacy(mode: OpenModeLegacy): OpenMode {

I think we should keep it because the "w+" style arguments are very familiar to some. But maybe the name "legacy" isn't so good. OpenModePosix ? OpenModeAbbreviated ?

mhvsa

comment created time in 5 hours

push eventdenoland/deno

Yusuke Sakurai

commit sha c1b302d76968bb55df24ef360a9fbf71857ae35c

fix: remote jsx/tsx files were compiled as js/ts (#3125)

view details

push time in 5 hours

PR merged denoland/deno

fix: [jsx] remote jsx/tsx files were compiled as js/ts
  • At resolving remote files, extension are ignored and .jsx | .tsx files were compiled as .js and .ts, resulting throw compilation error.
  • To resolve correctly, remote files should be checked by content-type and extension together.
+194 -7

6 comments

15 changed files

keroxp

pr closed time in 5 hours

push eventmhvsa/deno

Bartek Iwańczuk

commit sha 4221b90c3febbe03a4b47e47248263741a0fdd4a

perf: eager poll async ops in Isolate (#3046)

view details

Ryan Dahl

commit sha 8114ea525c4bb057f050ebc322a4d2a6ce15dfbc

Upgrade V8 to 7.9.304

view details

Ryan Dahl

commit sha ddbfe9b5aa13e469eb8f2e074352bcdbb9e8c71b

Add debug build to github actions This disabled the tty_tests which seem to be very flaky with the debug build.

view details

Bartek Iwańczuk

commit sha 54db12c4d979bff8f8ebd0dbfe981052c12cb315

perf: fairer ops scheduling (#3128)

view details

Jon Heslop

commit sha b1685ce0101f9ca16b0eeb6db7ff16ac81301545

Use max-width over max-device-width (#3132) Using max-width because this applies the mobile styles to narrow windows on larger devices as well as full with windows on narrow devices.

view details

Ryan Dahl

commit sha 360714cc6fbe4e1b5e3dbbcaa53d4a0818d76b5b

Merge branch 'master' into partial_reload

view details

Ryan Dahl

commit sha 83ccb746b51532064574c46c06dd467c3e3de4a7

cleanup

view details

push time in 6 hours

Pull request review commentdenoland/deno

[WIP] refactor: error handling in Isolate ops API

 impl OpRegistry {     op_id: OpId,     control: &[u8],     zero_copy_buf: Option<PinnedBuf>,-  ) -> CoreOp {+  ) -> Result<CoreOp, String> {     // Op with id 0 has special meaning - it's a special op that is always     // provided to retrieve op id map. The map consists of name to `OpId`     // mappings.     if op_id == 0 {-      return Op::Sync(self.json_map());+      return Ok(Op::Sync(self.json_map()));     } -    let d = &*self.dispatchers.get(op_id as usize).expect("Op not found!");-    d(control, zero_copy_buf)+    let d = match self.dispatchers.get(op_id as usize) {+      Some(handler) => &*handler,+      None => return Err(format!("Unknown op id: {}", op_id)),+    };

Also it would be helpful if you add triple slash doc to this function describing when it fails (i.e. it only fails when op id is wrong).

bartlomieju

comment created time in 7 hours

Pull request review commentdenoland/deno

[WIP] refactor: error handling in Isolate ops API

 impl OpRegistry {     op_id: OpId,     control: &[u8],     zero_copy_buf: Option<PinnedBuf>,-  ) -> CoreOp {+  ) -> Result<CoreOp, String> {     // Op with id 0 has special meaning - it's a special op that is always     // provided to retrieve op id map. The map consists of name to `OpId`     // mappings.     if op_id == 0 {-      return Op::Sync(self.json_map());+      return Ok(Op::Sync(self.json_map()));     } -    let d = &*self.dispatchers.get(op_id as usize).expect("Op not found!");-    d(control, zero_copy_buf)+    let d = match self.dispatchers.get(op_id as usize) {+      Some(handler) => &*handler,+      None => return Err(format!("Unknown op id: {}", op_id)),+    };

It's a little odd for this low-level function to construct an error string like this. I think it might be better if this function returns Result<CoreOp, ()> or Option<CoreOp> and the caller creates the error message.

bartlomieju

comment created time in 7 hours

Pull request review commentdenoland/deno

feat: type check .js file if @ts-check pragma present

 class SourceFile {   } } +const TS_CHECK_PRAGMA_RE = /^\/\/\s?@ts-check/;++function hasTsCheckPragma(sourceCode: string): boolean {+  return TS_CHECK_PRAGMA_RE.test(sourceCode);+}

If we're in the TS compiler, aren't we already type checking? I feel like this should be a Rust-only feature...?

bartlomieju

comment created time in 7 hours

Pull request review commentdenoland/deno

feat: type check .js file if @ts-check pragma present

 use url::Url; lazy_static! {   static ref CHECK_JS_RE: Regex =     Regex::new(r#""checkJs"\s*?:\s*?true"#).unwrap();+  static ref TS_CHECK_PRAGMA_RE: Regex =+    Regex::new(r#"^//\s?@ts-check"#).unwrap();

Isn't this more appropriate in cli/compilers/js.rs ?

bartlomieju

comment created time in 7 hours

Pull request review commentdenoland/deno

std: Move fs/path to the top-level

+const { build } = Deno;++export const isWindows = build.os === "win";+export const EOL = isWindows ? "\r\n" : "\n";

@nayeemrmn Maybe you can reduce this patch to just the path renames...

nayeemrmn

comment created time in 7 hours

Pull request review commentdenoland/deno

std: Move fs/path to the top-level

 // Copyright 2018-2019 the Deno authors. All rights reserved. MIT license. -/** EndOfLine character enum */-export enum EOL {-  LF = "\n",-  CRLF = "\r\n"-}- const regDetect = /(?:\r?\n)/g;  /**  * Detect the EOL character for string input.  * returns null if no newline  */-export function detect(content: string): EOL | null {+export function detect(content: string): "\r\n" | "\n" | null {

This seems not so desirable...

nayeemrmn

comment created time in 7 hours

Pull request review commentdenoland/deno

Partial reload

 To get help on the another subcommands (run in this case):     ).arg(       Arg::with_name("reload")         .short("r")+        .min_values(0)+        .takes_value(true)+        .use_delimiter(true)+        .require_equals(true)         .long("reload")-        .help("Reload source code cache (recompile TypeScript)")+        .help("Reload source code cache (recompile TypeScript). Supports blacklist")+        .value_name("blacklist")+        .long_help("Reload source code cache (recompile TypeScript). Supports blacklist+          --reload+            Reload everything+          --reload=https://deno.land/std+            Reload everything from the standard module+          --reload=https://deno.land/std/fs/utils.ts,https://deno.land/std/fmt/colors.ts+            Reloads only fs/utils and fmt/colors modules")

Ah right. I think "blacklist" makes sense elsewhere in the code, but not here in the user facing docs.

mhvsa

comment created time in 7 hours

PR merged denoland/deno

std(flags): Add test for multiple boolean flags

<!-- Before submitting a PR read https://deno.land/manual.html#contributing -->

+36 -0

0 comment

1 changed file

justjavac

pr closed time in 7 hours

push eventdenoland/deno

迷渡

commit sha 5983507255c8f725ee36ff53f6f8ecb2cb41e607

std/flags: Add test for multiple boolean flags (#3103)

view details

push time in 7 hours

PR opened denoland/deno

Fix tools/docs.py

merge on approval

+1 -1

0 comment

1 changed file

pr created time in 8 hours

create barnchry/deno

branch : fix_doc_py

created branch time in 8 hours

pull request commentdenoland/deno

Partial reload

Nice patch - thanks! Just a few comments...

mhvsa

comment created time in 8 hours

Pull request review commentdenoland/deno

Partial reload

 fn filter_shebang(bytes: Vec<u8>) -> Vec<u8> {   } } +fn check_cache_blacklist(url: &Url, black_list: &[String]) -> bool {

Should the black_list argument be a Vec<Url> instead?

mhvsa

comment created time in 8 hours

Pull request review commentdenoland/deno

Partial reload

 mod tests {     };   } +  #[test]+  fn test_cache_blacklist() {+    let args = crate::flags::resolve_urls(vec![+      String::from("http://deno.land/std"),+      String::from("http://github.com/example/mod.ts"),+      String::from("http://fragment.com/mod.ts#fragment"),+      String::from("http://query.com/mod.ts?foo=bar"),+      String::from("http://queryandfragment.com/mod.ts?foo=bar#fragment"),+    ]);++    let url1: Url = "http://deno.land/std/fs/mod.ts".parse().unwrap();+    let url2: Url = "http://github.com/example/file.ts".parse().unwrap();+    let url3: Url = "http://github.com/example/mod.ts".parse().unwrap();+    let url4: Url = "http://github.com/example/mod.ts?foo=bar".parse().unwrap();+    let url5: Url =+      "http://github.com/example/mod.ts#fragment".parse().unwrap();+    let url6: Url = "http://fragment.com/mod.ts".parse().unwrap();+    let url7: Url = "http://query.com/mod.ts".parse().unwrap();+    let url8: Url = "http://fragment.com/mod.ts#fragment".parse().unwrap();+    let url9: Url = "http://query.com/mod.ts?foo=bar".parse().unwrap();+    let url10: Url = "http://queryandfragment.com/mod.ts".parse().unwrap();+    let url11: Url = "http://queryandfragment.com/mod.ts?foo=bar"+      .parse()+      .unwrap();+    let url12: Url = "http://queryandfragment.com/mod.ts#fragment"+      .parse()+      .unwrap();+    let url13: Url =+      "http://query.com/mod.ts?foo=bar#fragment".parse().unwrap();+    let url14: Url = "http://fragment.com/mod.ts?foo=bar#fragment"+      .parse()+      .unwrap();++    let result1 = check_cache_blacklist(&url1, &args);+    let result2 = check_cache_blacklist(&url2, &args);+    let result3 = check_cache_blacklist(&url3, &args);+    let result4 = check_cache_blacklist(&url4, &args);+    let result5 = check_cache_blacklist(&url5, &args);+    let result6 = check_cache_blacklist(&url6, &args);+    let result7 = check_cache_blacklist(&url7, &args);+    let result8 = check_cache_blacklist(&url8, &args);+    let result9 = check_cache_blacklist(&url9, &args);+    let result10 = check_cache_blacklist(&url10, &args);+    let result11 = check_cache_blacklist(&url11, &args);+    let result12 = check_cache_blacklist(&url12, &args);+    let result13 = check_cache_blacklist(&url13, &args);+    let result14 = check_cache_blacklist(&url14, &args);++    assert_eq!(result1, true);+    assert_eq!(result2, false);+    assert_eq!(result3, true);+    assert_eq!(result4, true);+    assert_eq!(result5, true);+    assert_eq!(result6, true);+    assert_eq!(result7, false);+    assert_eq!(result8, true);+    assert_eq!(result9, true);+    assert_eq!(result10, false);+    assert_eq!(result11, true);+    assert_eq!(result12, false);+    assert_eq!(result13, true);+    assert_eq!(result14, true);

Indeed, I would argue defining all these url1, url2, ... variables are not helpful either. It's less code and easier to read if it's written

assert_eq!(true, check_cache_blacklist("http://deno.land/std/fs/mod.ts".parse().unwrap(), &args));
mhvsa

comment created time in 8 hours

Pull request review commentdenoland/deno

Partial reload

 mod tests {     };   } +  #[test]+  fn test_cache_blacklist() {+    let args = crate::flags::resolve_urls(vec![+      String::from("http://deno.land/std"),+      String::from("http://github.com/example/mod.ts"),+      String::from("http://fragment.com/mod.ts#fragment"),+      String::from("http://query.com/mod.ts?foo=bar"),+      String::from("http://queryandfragment.com/mod.ts?foo=bar#fragment"),+    ]);++    let url1: Url = "http://deno.land/std/fs/mod.ts".parse().unwrap();+    let url2: Url = "http://github.com/example/file.ts".parse().unwrap();+    let url3: Url = "http://github.com/example/mod.ts".parse().unwrap();+    let url4: Url = "http://github.com/example/mod.ts?foo=bar".parse().unwrap();+    let url5: Url =+      "http://github.com/example/mod.ts#fragment".parse().unwrap();+    let url6: Url = "http://fragment.com/mod.ts".parse().unwrap();+    let url7: Url = "http://query.com/mod.ts".parse().unwrap();+    let url8: Url = "http://fragment.com/mod.ts#fragment".parse().unwrap();+    let url9: Url = "http://query.com/mod.ts?foo=bar".parse().unwrap();+    let url10: Url = "http://queryandfragment.com/mod.ts".parse().unwrap();+    let url11: Url = "http://queryandfragment.com/mod.ts?foo=bar"+      .parse()+      .unwrap();+    let url12: Url = "http://queryandfragment.com/mod.ts#fragment"+      .parse()+      .unwrap();+    let url13: Url =+      "http://query.com/mod.ts?foo=bar#fragment".parse().unwrap();+    let url14: Url = "http://fragment.com/mod.ts?foo=bar#fragment"+      .parse()+      .unwrap();++    let result1 = check_cache_blacklist(&url1, &args);+    let result2 = check_cache_blacklist(&url2, &args);+    let result3 = check_cache_blacklist(&url3, &args);+    let result4 = check_cache_blacklist(&url4, &args);+    let result5 = check_cache_blacklist(&url5, &args);+    let result6 = check_cache_blacklist(&url6, &args);+    let result7 = check_cache_blacklist(&url7, &args);+    let result8 = check_cache_blacklist(&url8, &args);+    let result9 = check_cache_blacklist(&url9, &args);+    let result10 = check_cache_blacklist(&url10, &args);+    let result11 = check_cache_blacklist(&url11, &args);+    let result12 = check_cache_blacklist(&url12, &args);+    let result13 = check_cache_blacklist(&url13, &args);+    let result14 = check_cache_blacklist(&url14, &args);++    assert_eq!(result1, true);+    assert_eq!(result2, false);+    assert_eq!(result3, true);+    assert_eq!(result4, true);+    assert_eq!(result5, true);+    assert_eq!(result6, true);+    assert_eq!(result7, false);+    assert_eq!(result8, true);+    assert_eq!(result9, true);+    assert_eq!(result10, false);+    assert_eq!(result11, true);+    assert_eq!(result12, false);+    assert_eq!(result13, true);+    assert_eq!(result14, true);

Nit: there's no point in defining all these variables, just do something like:

assert_eq!(true, check_cache_blacklist(&url1, &args));
mhvsa

comment created time in 8 hours

Pull request review commentdenoland/deno

Partial reload

 To get help on the another subcommands (run in this case):     ).arg(       Arg::with_name("reload")         .short("r")+        .min_values(0)+        .takes_value(true)+        .use_delimiter(true)+        .require_equals(true)         .long("reload")-        .help("Reload source code cache (recompile TypeScript)")+        .help("Reload source code cache (recompile TypeScript). Supports blacklist")+        .value_name("blacklist")+        .long_help("Reload source code cache (recompile TypeScript). Supports blacklist+          --reload+            Reload everything+          --reload=https://deno.land/std+            Reload everything from the standard module+          --reload=https://deno.land/std/fs/utils.ts,https://deno.land/std/fmt/colors.ts+            Reloads only fs/utils and fmt/colors modules")

Shouldn't this be a "whitelist" rather than a "blacklist" ?

Also I don't think it's useful to say "Supports blacklist" or "Supports whitelist" - the examples you give are sufficient.

mhvsa

comment created time in 8 hours

push eventdenoland/registry

Colin

commit sha ce6493253c11bab60e8c04d7e2297f4f06380864

Add CatYou (#172)

view details

push time in 8 hours

PR merged denoland/registry

Add CatYou-Deno

I am requesting to add my module CatYou-Deno to the database.

+5 -0

2 comments

1 changed file

SuperC03

pr closed time in 8 hours

push eventdenoland/registry

David Martínez

commit sha 6c95005ab13e21e89b6c3b9278481cc0efd8b001

add bigfloat (#175)

view details

push time in 8 hours

Pull request review commentdenoland/deno

std: Move fs/path to the top-level

+const { build } = Deno;++export const isWindows = build.os === "win";+export const EOL = isWindows ? "\r\n" : "\n";

Sorry - I’m just hesitant if because this PR is doing a couple of different things... I guess it looks fine - but I would prefer a patch that moves files around to only do that...

nayeemrmn

comment created time in 8 hours

issue commentdenoland/deno

refactor: Resource table

Good write up. There are a couple bits of machinery implicit in this that are worth mention explicitly:

  1. There should be a way to register new resources at runtime, obtaining a new rid.
  2. Resource objects should be up-casted inside the op implementations.
  3. resource.close() removes a resource from the table.
bartlomieju

comment created time in 8 hours

push eventRoryMalcolm/deno

Ryan Dahl

commit sha 94667a9a597d98b1f1b6211cf019272b7824e2da

fix

view details

push time in 19 hours

pull request commentdenoland/deno

Add CustomInspect for Headers

There's still one failure:

 FAIL  customInspectReturnsCorrectHeadersFormat
AssertionError: 

    [Diff] Left / Right


-   "Headers { content-type: application/json, content-length: 1337 }"
+   "Headers { content-type: Application/json, content-length: 1337 }"

RoryMalcolm

comment created time in 19 hours

push eventRoryMalcolm/deno

Ryan Dahl

commit sha af0314f338a1cdb37d446cad4669234d25ce2f5e

fmt

view details

push time in 19 hours

pull request commentdenoland/deno

Add CustomInspect for Headers

Does tools/format.py not fix it? It calls prettier - potentially with different configuration than the default prettier.

RoryMalcolm

comment created time in a day

push eventdenoland/deno

Jon Heslop

commit sha b1685ce0101f9ca16b0eeb6db7ff16ac81301545

Use max-width over max-device-width (#3132) Using max-width because this applies the mobile styles to narrow windows on larger devices as well as full with windows on narrow devices.

view details

push time in a day

PR merged denoland/deno

Use max-width over max-device-width

Using max-width because this applies the mobile styles to narrow windows on larger devices as well as full with windows on narrow devices.

Before

Screenshot 2019-10-15 at 21 47 38

After

Screenshot 2019-10-15 at 21 48 02

+1 -1

1 comment

1 changed file

jonheslop

pr closed time in a day

pull request commentdenoland/deno

Add CustomInspect for Headers

./tools/format.py

RoryMalcolm

comment created time in a day

issue openeddenoland/deno

cli/tests/tty_tests (aka tools/complex_permissions_test.py and tools/permissions_test.py) was disabled and should be re-enabled

https://github.com/denoland/deno/commit/ddbfe9b5aa13e469eb8f2e074352bcdbb9e8c71b

created time in a day

pull request commentdenoland/deno

fix: [jsx] remote jsx/tsx files were compiled as js/ts

@keroxp I've merged the v8 upgrade which should alleviate the failure you were experiencing. I think there is still an issue in this patch though...

keroxp

comment created time in a day

push eventkeroxp/deno

Bartek Iwańczuk

commit sha 4221b90c3febbe03a4b47e47248263741a0fdd4a

perf: eager poll async ops in Isolate (#3046)

view details

Ryan Dahl

commit sha 8114ea525c4bb057f050ebc322a4d2a6ce15dfbc

Upgrade V8 to 7.9.304

view details

Ryan Dahl

commit sha ddbfe9b5aa13e469eb8f2e074352bcdbb9e8c71b

Add debug build to github actions This disabled the tty_tests which seem to be very flaky with the debug build.

view details

Ryan Dahl

commit sha 0c1bf5c0f82c1bb2d99805ebba0794703c157ac2

Merge branch 'master' into resolve-remote-jsx

view details

push time in a day

push eventdenoland/deno_third_party

Ryan Dahl

commit sha 908bc5a63c3520171d4b5caf6ec1f9c66633af70

Upgrade V8 to 7.9.304

view details

push time in a day

delete branch denoland/deno

delete branch : v8_upgrade

delete time in a day

push eventdenoland/deno

Ryan Dahl

commit sha 8114ea525c4bb057f050ebc322a4d2a6ce15dfbc

Upgrade V8 to 7.9.304

view details

Ryan Dahl

commit sha ddbfe9b5aa13e469eb8f2e074352bcdbb9e8c71b

Add debug build to github actions This disabled the tty_tests which seem to be very flaky with the debug build.

view details

push time in a day

PR merged denoland/deno

Upgrade V8 to 7.9.304

Fixes #3122

+24 -11

1 comment

4 changed files

ry

pr closed time in a day

issue closeddenoland/deno

deno fmt fails with error of Illegal instruction

🙁

tmnk@buildDeno:~/deno$ ./target/debug/deno fmt badly_formatted.js 
Download https://deno.land/std@8c90bd9/prettier/vendor/standalone.js
Download https://deno.land/std@8c90bd9/prettier/vendor/parser_typescript.js
Download https://deno.land/std@8c90bd9/prettier/vendor/parser_markdown.js


#
# Fatal error in ../../core/libdeno/v8/src/parsing/preparser.h, line 1076
# Debug check failed: !parsing_module_.
#
#
#
#FailureMessage Object: 0x7eff75515cc0
==== C stack trace ===============================

    ./target/debug/deno(+0x286acb3) [0x55aadeed1cb3]
    ./target/debug/deno(+0x273e52b) [0x55aadeda552b]
    ./target/debug/deno(+0x1e6e648) [0x55aade4d5648]
    ./target/debug/deno(+0x1e6e375) [0x55aade4d5375]
    ./target/debug/deno(+0x1adf30f) [0x55aade14630f]
    ./target/debug/deno(+0x1a7927e) [0x55aade0e027e]
    ./target/debug/deno(+0x1a7b081) [0x55aade0e2081]
    ./target/debug/deno(+0x1a7abd0) [0x55aade0e1bd0]
    ./target/debug/deno(+0x1ad1346) [0x55aade138346]
    ./target/debug/deno(+0x1acf856) [0x55aade136856]
    ./target/debug/deno(+0x1ad6f14) [0x55aade13df14]
    ./target/debug/deno(+0x1ad68a6) [0x55aade13d8a6]
    ./target/debug/deno(+0x1ad4ee4) [0x55aade13bee4]
    ./target/debug/deno(+0x1ad63f0) [0x55aade13d3f0]
    ./target/debug/deno(+0x1ad4fea) [0x55aade13bfea]
    ./target/debug/deno(+0x1ad2753) [0x55aade139753]
    ./target/debug/deno(+0x1adf556) [0x55aade146556]
    ./target/debug/deno(+0x1addc1e) [0x55aade144c1e]
    ./target/debug/deno(+0x1a7927e) [0x55aade0e027e]
    ./target/debug/deno(+0x1a7b081) [0x55aade0e2081]
    ./target/debug/deno(+0x1a7abd0) [0x55aade0e1bd0]
    ./target/debug/deno(+0x1ad1346) [0x55aade138346]
    ./target/debug/deno(+0x1acf856) [0x55aade136856]
    ./target/debug/deno(+0x1ad6f14) [0x55aade13df14]
    ./target/debug/deno(+0x1ad68a6) [0x55aade13d8a6]
    ./target/debug/deno(+0x1ad4ee4) [0x55aade13bee4]
    ./target/debug/deno(+0x1ad45b4) [0x55aade13b5b4]
    ./target/debug/deno(+0x1aced95) [0x55aade135d95]
    ./target/debug/deno(+0x1ad6f78) [0x55aade13df78]
    ./target/debug/deno(+0x1ad68a6) [0x55aade13d8a6]
    ./target/debug/deno(+0x1ad4ee4) [0x55aade13bee4]
    ./target/debug/deno(+0x1ad63f0) [0x55aade13d3f0]
    ./target/debug/deno(+0x1adb37b) [0x55aade14237b]
    ./target/debug/deno(+0x1acc833) [0x55aade133833]
    ./target/debug/deno(+0x1a7927e) [0x55aade0e027e]
    ./target/debug/deno(+0x1a7b081) [0x55aade0e2081]
    ./target/debug/deno(+0x1a7abd0) [0x55aade0e1bd0]
    ./target/debug/deno(+0x1ad1346) [0x55aade138346]
    ./target/debug/deno(+0x1acf856) [0x55aade136856]
    ./target/debug/deno(+0x1ad6f14) [0x55aade13df14]
    ./target/debug/deno(+0x1ad68a6) [0x55aade13d8a6]
    ./target/debug/deno(+0x1ad4ee4) [0x55aade13bee4]
    ./target/debug/deno(+0x1ad45b4) [0x55aade13b5b4]
    ./target/debug/deno(+0x1aced95) [0x55aade135d95]
    ./target/debug/deno(+0x1ad6f78) [0x55aade13df78]
    ./target/debug/deno(+0x1ad68a6) [0x55aade13d8a6]
    ./target/debug/deno(+0x1ad4ee4) [0x55aade13bee4]
    ./target/debug/deno(+0x1ad63f0) [0x55aade13d3f0]
    ./target/debug/deno(+0x1adb37b) [0x55aade14237b]
    ./target/debug/deno(+0x1acc833) [0x55aade133833]
    ./target/debug/deno(+0x1a7927e) [0x55aade0e027e]
    ./target/debug/deno(+0x1a7a423) [0x55aade0e1423]
    ./target/debug/deno(+0x1a798e0) [0x55aade0e08e0]
    ./target/debug/deno(+0x284c271) [0x55aadeeb3271]
    ./target/debug/deno(+0x284155b) [0x55aadeea855b]
    ./target/debug/deno(+0x2859c4d) [0x55aadeec0c4d]
    ./target/debug/deno(+0x2858284) [0x55aadeebf284]
    ./target/debug/deno(+0x2856a34) [0x55aadeebda34]
    ./target/debug/deno(+0x2855e46) [0x55aadeebce46]
    ./target/debug/deno(+0x28548e0) [0x55aadeebb8e0]
    ./target/debug/deno(+0x285bf35) [0x55aadeec2f35]
    ./target/debug/deno(+0x2857615) [0x55aadeebe615]
Illegal instruction (core dumped)
tmnk@buildDeno:~/deno$ cat badly_formatted.js 

console.log(
  "Hello World"
)
tmnk@buildDeno:~/deno$ cat /proc/version
Linux version 5.0.0-1018-azure (buildd@lgw01-amd64-048) (gcc version 7.4.0 (Ubuntu 7.4.0-1ubuntu1~18.04.1)) #19~18.04.1-Ubuntu SMP Wed Aug 21 05:13:05 UTC 2019

closed time in a day

7k8m

push eventdenoland/deno

Ryan Dahl

commit sha 9beacd108116beb353db55e5fd7d51015241f862

Add debug build to github actions This disabled the tty_tests which seem to be very flaky with the debug build.

view details

push time in a day

push eventdenoland/deno

Ryan Dahl

commit sha 49632bc2f70c7eefd60935426f7792887a79dd2c

bump

view details

push time in 2 days

push eventdenoland/deno

Ryan Dahl

commit sha 68b2eec95aacccf2cca61572d566aaf477c26157

disable fmt_tests

view details

push time in 2 days

push eventdenoland/deno

Ryan Dahl

commit sha 3b706d325482fb4c05c1310fdb4d8d43ffd9d29f

flaky test

view details

push time in 2 days

push eventdenoland/deno

Ryan Dahl

commit sha 79f423009f357a5347df5b4d4b547342c6169584

disable flaky test

view details

push time in 2 days

push eventdenoland/deno

Ryan Dahl

commit sha 7f75044084ba8e88114f7552dc08bde71f24b99b

fix

view details

push time in 2 days

issue commentdenoland/deno

URL interface display

It might be simpler to just restructure our URL class to not have _parts but rather members? Is that how Node's is implemented?

cup

comment created time in 2 days

push eventdenoland/deno

Ryan Dahl

commit sha 6135e629906f005115a6e7edf38d015470232aac

Add debug build to github actions

view details

push time in 2 days

push eventdenoland/deno

Bartek Iwańczuk

commit sha 4221b90c3febbe03a4b47e47248263741a0fdd4a

perf: eager poll async ops in Isolate (#3046)

view details

push time in 2 days

PR merged denoland/deno

perf: eager poll async ops in Isolate

Revamp of #2779 with new dispatcher infra.

I get ridiculous result on my machine... this PR debug

third_party/wrk/mac/wrk -d 10s --latency http://127.0.0.1:4544
Running 10s test @ http://127.0.0.1:4544
  2 threads and 10 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency    52.80ms  185.40ms   1.28s    92.56%
    Req/Sec    16.56k     4.16k   26.77k    74.26%
  Latency Distribution
     50%  283.00us
     75%  291.00us
     90%   73.22ms
     99%  951.90ms
  332831 requests in 10.10s, 16.19MB read
Requests/sec:  32954.40
Transfer/sec:      1.60MB

master debug

third_party/wrk/mac/wrk -d 10s --latency http://127.0.0.1:4544
Running 10s test @ http://127.0.0.1:4544
  2 threads and 10 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency   584.31us  191.76us   8.23ms   96.67%
    Req/Sec     8.67k   777.07     8.99k    94.06%
  Latency Distribution
     50%  557.00us
     75%  561.00us
     90%  579.00us
     99%    0.99ms
  174285 requests in 10.10s, 8.48MB read
Requests/sec:  17255.87
Transfer/sec:    859.42KB

this PR release

third_party/wrk/mac/wrk -d 10s --latency http://127.0.0.1:4544
Running 10s test @ http://127.0.0.1:4544
  2 threads and 10 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency   104.40us   62.98us   2.97ms   86.85%
    Req/Sec    47.33k     2.91k   50.13k    86.50%
  Latency Distribution
     50%   97.00us
     75%  123.00us
     90%  165.00us
     99%  299.00us
  941792 requests in 10.00s, 45.81MB read
Requests/sec:  94179.51
Transfer/sec:      4.58MB

master release

third_party/wrk/mac/wrk -d 10s --latency http://127.0.0.1:4544
Running 10s test @ http://127.0.0.1:4544
  2 threads and 10 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency   122.79us   32.44us   1.95ms   96.50%
    Req/Sec    39.58k     1.49k   40.66k    97.03%
  Latency Distribution
     50%  119.00us
     75%  122.00us
     90%  125.00us
     99%  264.00us
  795753 requests in 10.10s, 38.70MB read
Requests/sec:  78785.96
Transfer/sec:      3.83MB

That's ~90% increase for debug and ~20% for release. You can see that latency got worse, but that's promising results.

CC @ry

+240 -93

6 comments

8 changed files

bartlomieju

pr closed time in 2 days

push eventdenoland/deno

Ryan Dahl

commit sha 6a2734ce3bc01e91fd4cef0ef1b45c19e5fd55a7

Add debug build to github actions

view details

push time in 2 days

push eventdenoland/deno

Ryan Dahl

commit sha 28aafd8a97179cde824a825bf8b346f7fcd5499c

Add debug build to github actions

view details

push time in 2 days

PR opened denoland/deno

Upgrade V8 to 7.9.304

Fixes #3122

+2 -2

0 comment

2 changed files

pr created time in 2 days

create barnchdenoland/deno

branch : v8_upgrade

created branch time in 2 days

create barnchdenoland/deno_third_party

branch : 20191014_v8

created branch time in 2 days

issue commentdenoland/deno

deno fmt fails with error of Illegal instruction

This error first appeared in bed7034fc44a8d20e11a85b6092e7f0f34f43ff8.

7k8m

comment created time in 2 days

issue commentsteveicarus/iverilog

$fatal should result in a non-zero exit code

It's standard in unix to indicate error with non-zero exit code and given that iverilog also does not print to stderr on $fatal means that automated tests require extra code to parse the output in order to utilize iverilog.

I'm not sure which is the best appropriate specifciation but at least in this one it states "$fatal is a run-time fatal, which shall terminates the simulation with an error code."

ry

comment created time in 2 days

issue commentdenoland/deno

deno fmt fails with error of Illegal instruction

We really need to add debug builds to CI...

7k8m

comment created time in 2 days

issue closeddenoland/deno

Issue running cargo test

Hi,

As described in this issue, when I run cargo test I receive this output:

FAILED (errors=1)
', cli/tests/util/mod.rs:34:5
stack backtrace:
   0: backtrace::backtrace::libunwind::trace
             at /Users/vsts/.cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.34/src/backtrace/libunwind.rs:88
   1: backtrace::backtrace::trace_unsynchronized
             at /Users/vsts/.cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.34/src/backtrace/mod.rs:66
   2: std::sys_common::backtrace::_print
             at src/libstd/sys_common/backtrace.rs:47
   3: std::sys_common::backtrace::print
             at src/libstd/sys_common/backtrace.rs:36
   4: std::panicking::default_hook::{{closure}}
             at src/libstd/panicking.rs:200
   5: std::panicking::default_hook
             at src/libstd/panicking.rs:211
   6: std::panicking::rust_panic_with_hook
             at src/libstd/panicking.rs:477
   7: std::panicking::continue_panic_fmt
             at src/libstd/panicking.rs:384
   8: std::thread::local::fast::Key<T>::try_initialize
   9: integration_tests::util::run_python_script
             at cli/tests/util/mod.rs:34
  10: integration_tests::fmt_test
             at cli/tests/integration_tests.rs:32
  11: integration_tests::fmt_test::{{closure}}
             at cli/tests/integration_tests.rs:30
  12: core::ops::function::FnOnce::call_once
             at /rustc/625451e376bb2e5283fc4741caa0a3e8a2ca4d54/src/libcore/ops/function.rs:235
  13: <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once
             at /rustc/625451e376bb2e5283fc4741caa0a3e8a2ca4d54/src/liballoc/boxed.rs:787
  14: __rust_maybe_catch_panic
             at src/libpanic_unwind/lib.rs:80
  15: std::panicking::try
             at /rustc/625451e376bb2e5283fc4741caa0a3e8a2ca4d54/src/libstd/panicking.rs:275
  16: std::panic::catch_unwind
             at /rustc/625451e376bb2e5283fc4741caa0a3e8a2ca4d54/src/libstd/panic.rs:394
  17: test::run_test::run_test_inner::{{closure}}
             at src/libtest/lib.rs:1408
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

---- js_unit_tests stdout ----
thread 'js_unit_tests' panicked at 'called `Result::unwrap()` on an `Err` value: "PoisonError { inner: .. }"', src/libcore/result.rs:1084:5
stack backtrace:
   0: backtrace::backtrace::libunwind::trace
             at /Users/vsts/.cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.34/src/backtrace/libunwind.rs:88
   1: backtrace::backtrace::trace_unsynchronized
             at /Users/vsts/.cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.34/src/backtrace/mod.rs:66
   2: std::sys_common::backtrace::_print
             at src/libstd/sys_common/backtrace.rs:47
   3: std::sys_common::backtrace::print
             at src/libstd/sys_common/backtrace.rs:36
   4: std::panicking::default_hook::{{closure}}
             at src/libstd/panicking.rs:200
   5: std::panicking::default_hook
             at src/libstd/panicking.rs:211
   6: std::panicking::rust_panic_with_hook
             at src/libstd/panicking.rs:477
   7: std::panicking::continue_panic_fmt
             at src/libstd/panicking.rs:384
   8: rust_begin_unwind
             at src/libstd/panicking.rs:311
   9: std::panicking::begin_panic
  10: std::panicking::begin_panic
  11: core::result::Result<T,E>::unwrap
             at /rustc/625451e376bb2e5283fc4741caa0a3e8a2ca4d54/src/libcore/result.rs:852
  12: deno_cli::test_util::http_server
             at cli/test_util.rs:62
  13: integration_tests::js_unit_tests
             at cli/tests/integration_tests.rs:38
  14: integration_tests::js_unit_tests::{{closure}}
             at cli/tests/integration_tests.rs:37
  15: core::ops::function::FnOnce::call_once
             at /rustc/625451e376bb2e5283fc4741caa0a3e8a2ca4d54/src/libcore/ops/function.rs:235
  16: <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once
             at /rustc/625451e376bb2e5283fc4741caa0a3e8a2ca4d54/src/liballoc/boxed.rs:787
  17: __rust_maybe_catch_panic
             at src/libpanic_unwind/lib.rs:80
  18: std::panicking::try
             at /rustc/625451e376bb2e5283fc4741caa0a3e8a2ca4d54/src/libstd/panicking.rs:275
  19: std::panic::catch_unwind
             at /rustc/625451e376bb2e5283fc4741caa0a3e8a2ca4d54/src/libstd/panic.rs:394
  20: test::run_test::run_test_inner::{{closure}}
             at src/libtest/lib.rs:1408
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

My cargo --version is cargo 1.38.0 (23ef9a4ef 2019-08-20) & rustc --version is rustc 1.38.0 (625451e37 2019-09-23).

I also get this error earlier in the format test (python2 tools/format.py passes) and that is where the panic occurs:

Traceback (most recent call last):
  File "tools/fmt_test.py", line 31, in test_fmt
    quiet=True)
  File "/Users/usrname/Documents/deno/tools/util.py", line 99, in run_output
    sys.exit(retcode)
SystemExit: -4

I don't know enough about the logic of util.py to know why this is being thrown from L99 but it's in the run_output function.

closed time in 2 days

RoryMalcolm

issue commentdenoland/deno

Issue running cargo test

Looks like a duplicate of https://github.com/denoland/deno/issues/3122

We'll move the discussion there. Thanks @RoryMalcolm !

RoryMalcolm

comment created time in 2 days

issue commentdenoland/deno

Issue running cargo test

@bartlomieju I agree.

@RoryMalcolm It would be helpful if you could provide the complete output of the cargo test, not just the error.

RoryMalcolm

comment created time in 2 days

issue commentdenoland/deno

Issue running cargo test

Can you provide the output of tools/format.py ?

RoryMalcolm

comment created time in 2 days

Pull request review commentdenoland/deno

fix: [jsx] remote jsx/tsx files were compiled as js/ts

 mod tests {       map_content_type(Path::new("foo/bar.ts"), Some("foo/bar")),       msg::MediaType::Unknown     );+    assert_eq!(+      map_content_type(+        Path::new("foo/bar.tsx"),+        Some("application/typescript")+      ),+      msg::MediaType::TSX+    );+    assert_eq!(+      map_content_type(+        Path::new("foo/bar.tsx"),+        Some("application/javascript")+      ),+      msg::MediaType::TSX+    );+    assert_eq!(+      map_content_type(+        Path::new("foo/bar.tsx"),+        Some("application/x-typescript")+      ),+      msg::MediaType::TSX+    );+    assert_eq!(+      map_content_type(+        Path::new("foo/bar.jsx"),+        Some("application/javascript")+      ),+      msg::MediaType::JSX+    );+    assert_eq!(+      map_content_type(+        Path::new("foo/bar.jsx"),+        Some("application/x-typescript")+      ),+      msg::MediaType::JSX+    );

👍

keroxp

comment created time in 2 days

issue commentdenoland/deno

Issue running cargo test

There may be a random python process running in the background. Can you run

ps aux | grep python

Is there something related to deno in there? A script called http_server.py ...

It may be complicating the debugging here. If it exists, please kill it and try running RUST_BACKTRACE=1 cargo test >& output.txt

Thanks for doing this : )

RoryMalcolm

comment created time in 2 days

issue commentdenoland/deno

Issue running cargo test

Do you have rustfmt installed? What does which rustfmt return?

RoryMalcolm

comment created time in 2 days

issue commentdenoland/deno

Issue running cargo test

@RoryMalcolm Thanks! What version of python are you using?

RoryMalcolm

comment created time in 2 days

issue commentdenoland/deno_std

console.log(headers) doesn't print useful info

@RoryMalcolm It would be very helpful if you run this:

RUST_BACKTRACE=1 cargo test

and open an issue in https://github.com/denoland/deno with the output.

FrediLehmann

comment created time in 2 days

issue commentdenoland/deno_std

console.log(headers) doesn't print useful info

@RoryMalcolm I'd be interested to hear what issue you ran into.

FrediLehmann

comment created time in 2 days

issue openedsteveicarus/iverilog

$fatal should result in a non-zero exit code

module tb;
  initial begin
    #1 if (1) $fatal(1);
    #1 $finish;
  end
endmodule

I would expect the executable generated with iverilog to have exit code 1, but it has exit code 0.

I'm using Icarus Verilog version 11.0 (devel) (s20150603-643-gb43fcccc)

created time in 2 days

Pull request review commentdenoland/deno

fix: [jsx] remote jsx/tsx files were compiled as js/ts

 fn map_content_type(path: &Path, content_type: Option<&str>) -> msg::MediaType {         | "text/typescript"         | "video/vnd.dlna.mpeg-tts"         | "video/mp2t"-        | "application/x-typescript" => msg::MediaType::TypeScript,+        | "application/x-typescript" => {+          map_js_like_extension(path, msg::MediaType::TypeScript)+        }         "application/javascript"         | "text/javascript"         | "application/ecmascript"         | "text/ecmascript"-        | "application/x-javascript" => msg::MediaType::JavaScript,+        | "application/x-javascript" => {+          map_js_like_extension(path, msg::MediaType::JavaScript)+        }

I think there should be a unit test added in this file to test this change...

keroxp

comment created time in 2 days

Pull request review commentdenoland/deno

fix: [jsx] remote jsx/tsx files were compiled as js/ts

+import "https://raw.githubusercontent.com/denoland/deno/master/cli/tests/047_jsx_test.jsx";

Use "http://127.0.0.1/cli/tests/047_jsx_test.jsx" here and elsewhere.

keroxp

comment created time in 2 days

pull request commentdenoland/deno

Vendor Acorn; Use Acorn parser in REPL

How much larger does this make the deno executable in release mode?

kevinkassimo

comment created time in 3 days

push eventdenoland/deno

Yusuke Sakurai

commit sha 605659535794ca0d8fe3ee4ea5857b418d7ce091

fix: [tls] op_dial_tls is not registerd and broken (#3121)

view details

push time in 3 days

PR merged denoland/deno

fix: [tls] op_dial_tls is not registerd and broken
  • dialTLS was broken on 97d8498d
    • Or broken from v0.20.0? v0.19.0's dialTLS works fine.
  • added more accurate test.
+31 -4

0 comment

5 changed files

keroxp

pr closed time in 3 days

push eventdenoland/deno

Bartek Iwańczuk

commit sha b3331e81d920ac6654545094c31bfe07abc750d5

support --allow-net=:4500 (#3115)

view details

push time in 4 days

PR merged denoland/deno

feat: support --allow-net=:4500

Closes #2405

This PR adds functionality to expand host passed to --allow-net. If you pass "bare port" then it will be expanded to: 0.0.0.0:port, 127.0.0.1:port and localhost:port.

+63 -1

0 comment

1 changed file

bartlomieju

pr closed time in 4 days

issue closeddenoland/deno

support --allow-net=:4500

which should alias to --allow-net=0.0.0.0:4500

closed time in 4 days

ry

push eventdenoland/deno

Yusuke Sakurai

commit sha 5f5583cf19349d19f717f65312558588825ad7b8

fix: [prettier] deno fmt should format jsx/tsx files (#3118)

view details

push time in 4 days

PR merged denoland/deno

fix: [prettier] deno fmt should format jsx/tsx files
  • Made deno fmt format .jsx .tsx files.
+16 -5

2 comments

4 changed files

keroxp

pr closed time in 4 days

issue closeddenoland/deno

reorg directory structure

After https://github.com/denoland/deno/pull/2825 lands, I want to change the layout of our source tree. #2825 adds two new crates, bringing our total to 4. I think we need to move them all into a special src directory to make grepping easier, and easier for newbies to navigate.

After #2825, the //js directory is only used by cli_snapshots, I think it should be moved to a subdirectory of that crate.

Thus I propose

//src/
//src/core/
//src/core/libdeno/
//src/cli/
//src/cli/ops
//src/cli_snapshots/
//src/cli_snapshots/js/
//src/deno_typescript/

deno_typescript is a long name - I'd like to use something shorter. But I'm not sure what a good name would be that is descriptive yet short.. I think we can punt on that.

Also I am strongly considering merging the deno_std tree into this repo. I think //src/std would be logical. I will do that in a separate PR, but just want to mention it.

closed time in 4 days

ry

issue commentdenoland/deno

reorg directory structure

Done. I’m not going to pursue the src dir.

ry

comment created time in 4 days

issue commentdenoland/deno

refactor: cli::Worker

Thanks for the good outline. I agree with splitting the workers.

I do kinda think it might be better to complete the op crate refactor before splitting up the workers.

bartlomieju

comment created time in 4 days

issue commentdenoland/deno

Major features necessary for 1.0

I'm removing fs-events as a blocker for 1.0. It's certainly important but a must-have.

ry

comment created time in 5 days

Pull request review commentdenoland/deno

std: Move fs/path to the top-level

+const { build } = Deno;++export const isWindows = build.os === "win";+export const EOL = isWindows ? "\r\n" : "\n";

I apologize for being so nit-picky about this...

  1. These 4 lines could be one: export const EOL = Deno.build.os === "win" ? "\r\n" : "\n";
  2. Do we need a standalone module for this one constant? What about moving this to std/fs/eol.ts ?
nayeemrmn

comment created time in 5 days

push eventdenoland/deno

Ryan Dahl

commit sha 97d8498d46bbfb7bb16eeb3a69565d2aeda1e5aa

Add init methods for each op module (#3087)

view details

push time in 5 days

PR merged denoland/deno

Add init functions for each of the op modules

Towards #2180

+292 -361

0 comment

20 changed files

ry

pr closed time in 5 days

PR merged denoland/deno

Ensure DENO_DIR when saving the REPL history

Fixes #3104.

I still think it should be an entry in DenoDir, though.

+10 -20

2 comments

2 changed files

nayeemrmn

pr closed time in 5 days

push eventdenoland/deno

Nayeem Rahman

commit sha 04ed8d0531b7c2c308b28b742f5c332345d97065

Ensure DENO_DIR when saving the REPL history (#3106)

view details

push time in 5 days

issue closeddenoland/deno

failure: start REPL without an existing DENO_DIR

➜  try deno
> 
Unable to save REPL history: "/home/jason/.cache/deno/deno_history.txt" directory does not exist

closed time in 5 days

CGQAQ

Pull request review commentdenoland/deno

Ensure DENO_DIR when saving the REPL history

 def test_lexical_scoped_variable(self):         self.assertEqual(code, 0)      def test_missing_deno_dir(self):+        deno_dir = "nonexistent"         new_env = os.environ.copy()-        new_env["DENO_DIR"] = os.path.abspath("doesnt_exist")-        out, err, code = self.input("'noop'", exit=False, env=new_env)-        self.assertEqual(out, "noop\n")-        self.assertTrue(err.startswith("Unable to save REPL history:"))+        new_env["DENO_DIR"] = deno_dir+        out, err, code = self.input("1", exit=False, env=new_env)+        self.assertTrue(os.path.isdir(deno_dir))+        shutil.rmtree(deno_dir)+        self.assertEqual(out, "1\n")+        self.assertEqual(err, "")

👍

nayeemrmn

comment created time in 5 days

pull request commentdenoland/deno

Ensure DENO_DIR when saving the REPL history

I still think it should be an entry in DenoDir, though.

What do you mean by that?

nayeemrmn

comment created time in 5 days

pull request commentdenoland/deno

perf: Greedy poll async ops in Isolate

Looks good - I'm in favor of landing this. Nice work! I look forward to seeing the benchmarks page updated.

I want to give @piscisaureus a chance to review since this is very sensitive code.

bartlomieju

comment created time in 5 days

Pull request review commentdenoland/deno

perf: Greedy poll async ops in Isolate

 void deno_respond(Deno* d_, void* user_data, deno_op_id op_id, deno_buf buf) {   if (d->current_args_ != nullptr) {     // Synchronous response.     // Note op_id is not passed back in the case of synchronous response.-    if (buf.data_ptr != nullptr) {+    if (buf.data_ptr != nullptr && buf.data_len > 0) {

I think this alone is a good optimization.

bartlomieju

comment created time in 5 days

more