profile
viewpoint
ecyrbe France, Paris Lead dev. working mainly with c / c++ / Javascript / Typescript / Rust

ecyrbe/deno 0

A secure JavaScript and TypeScript runtime

issue commentDevExpress/testcafe

Expose fixture and test functions to allow to use them dynamically

this is the main reason our company isn't using testcafe for now.

reaktivo

comment created time in 7 days

pull request commentdenoland/deno

fest(std/node): implement os.getPriority() and os.setPriority()

thanks. i agree, i'll add it then.

ecyrbe

comment created time in 22 days

issue commentdenoland/deno

Support missing OS functionality

@ry did you have time to investigate ?

cknight

comment created time in 23 days

Pull request review commentdenoland/deno

Add op_umask

 use rand; use rand::Rng; use walkdir::WalkDir; +#[cfg(unix)]+use nix::sys::stat::{mode_t, umask as unix_umask, Mode};+ #[cfg(unix)] use std::os::unix::fs::{DirBuilderExt, PermissionsExt};  #[cfg(unix)] use nix::unistd::{chown as unix_chown, Gid, Uid}; +#[cfg(unix)]+pub fn umask(mask: Option<u32>) -> Result<u32, ErrBox> {+  let previous: Mode = unix_umask(Mode::from_bits_truncate(+    mask.unwrap_or(0o777) as mode_t & 0o777,+  ));+  if mask.is_none() {+    unix_umask(previous);+  }+  Ok(previous.bits() as u32 & 0o777)+}++#[cfg(not(unix))]+pub fn umask(mask: Option<u32>) -> Result<u32, ErrBox> {+  match mask {+    Some(_) => {+      let e = std::io::Error::new(+        std::io::ErrorKind::Other,+        "Not implemented".to_string(),

maybe use _umask on windows like node does ?

dubiousjim

comment created time in 23 days

pull request commentdenoland/deno

fest(std/node): implement os.getPriority() and os.setPriority()

@ry just a reminder, could you give me a hint at what route i should take for permissions ? see above comment.

ecyrbe

comment created time in 23 days

pull request commentdenoland/deno

fest(std/node): implement os.getPriority() and os.setPriority()

@ry just a reminder, could you give me a hint at what route i should take for permissions ? see above comment.

ecyrbe

comment created time in 23 days

pull request commentdenoland/deno

fest(std/node): implement os.getPriority() and os.setPriority()

Or should we create a new permission level? like :

  • allow_api
  • api_whitelist
ecyrbe

comment created time in a month

pull request commentdenoland/deno

fest(std/node): implement os.getPriority() and os.setPriority()

Should i set Env permissions ?

ecyrbe

comment created time in a month

push eventecyrbe/deno

ecyrbe

commit sha 2653c6f66abc2c0422479f30db9068481a951fa3

docs: review 3

view details

push time in a month

push eventecyrbe/deno

ecyrbe

commit sha cff74d8daeb4d91bb15e6172f4445985cbab7a6e

fix: review 2

view details

push time in a month

delete branch ecyrbe/deno

delete branch : feature/std-node-os-tmpdir

delete time in a month

push eventecyrbe/deno

Kevin (Kun) "Kassimo" Qian

commit sha c3661e9f0731c8e6d2952de23eaeaaa1dc6ca4da

Make internel error frames dimmer (#4201)

view details

Ryan Dahl

commit sha ad21210edd5aabdeebe70809672b4224cc6f41c9

perf: use subarray instead of slice in dispatch minimal (#4180)

view details

ecyrbe

commit sha 2a594bd3b2403fbbd26a0191ac8c289c365451d0

feat(std/node): add os.tmpdir() implementation (#4213)

view details

ecyrbe

commit sha fed9e937d9f629d8672249d3d67763d4e783042c

fest(std/node): implement os.getPriority() and os.setPriority()

view details

ecyrbe

commit sha 3a04261808d147ccaa4967523042dff999aae98d

fix: review

view details

ecyrbe

commit sha 021d23cb4b58d947b2e74c3c01d3beaa3b2138d1

fix: review 2

view details

ecyrbe

commit sha a9b3b1ff71eabd2272206376c2125870c98feae5

tests: use deno simple tests

view details

ecyrbe

commit sha 75ffc07eb6ec7d6c65bdb8f2859bf9c691fb387f

fix: export enum

view details

push time in a month

push eventecyrbe/deno

ecyrbe

commit sha 8107809093dbc6e8d4a138757113835f71251362

fix: export enum

view details

push time in a month

Pull request review commentdenoland/deno

fest(std/node): implement os.getPriority() and os.setPriority()

 declare namespace Deno {   /** Exit the Deno process with optional exit code. */   export function exit(code?: number): never; -  /** Get process priority */+  /** **UNSTABLE**: Might not use all-caps. */+  export enum OsPriority {+    LOW = 19,+    BELOW_NORMAL = 10,+    NORMAL = 0,+    ABOVE_NORMAL = -7,+    HIGH = -14,+    HIGHEST = -20+  }++  /**+   * Returns the scheduling priority for the process specified by pid.+   * If pid is not provided or is 0, the priority of the current process is returned.+   */   export function getPriority(pid?: number): number; -  /** Set process priority */-  export function setPriority(priority: number, pid?: number): void;+  /**+   * Attempts to set the scheduling priority for the process specified by pid.+   * If pid is not provided or is 0, the process ID of the current process is used.+   * The priority input must be an integer between -20 (high priority) and 19 (low priority).+   * Due to differences between Unix priority levels and Windows priority classes,+   * priority is mapped to one of six priority constants in os.constants.priority.

thx, fixed

ecyrbe

comment created time in a month

push eventecyrbe/deno

ecyrbe

commit sha ddf4d58d08dc3d66385f1652b1ec81a01241e6a8

fix: review 2

view details

ecyrbe

commit sha b643c553b33f5a7d2ecd7003c6624585931e082c

tests: use deno simple tests

view details

push time in a month

push eventecyrbe/deno

ecyrbe

commit sha 9f9a0be62f1b4a4f82907224edca5db3b6dcfb58

fix: review

view details

push time in a month

pull request commentdenoland/deno

fest(std/node): implement os.getPriority() and os.setPriority()

Thanks @ecyrbe, I've added a few suggestions, but will leave the rust review to @ry.

One further suggestion, what about making the different priority levels exposed as an enum, similiar to https://nodejs.org/api/os.html#os_priority_constants? This would make it more user friendly.

Then the API could be something like:

setPriority(priority: number | OsPriority, pid?:number)

i'll definitly add this to Deno api layer to ease deno developpement.

ecyrbe

comment created time in a month

Pull request review commentdenoland/deno

fest(std/node): implement os.getPriority() and os.setPriority()

+// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license.+use crate::op_error::OpError;++#[cfg(unix)]+use errno::{errno, set_errno, Errno};+#[cfg(unix)]+use libc::{id_t, PRIO_PROCESS};+#[cfg(windows)]+use winapi::shared::minwindef::{DWORD, FALSE};+#[cfg(windows)]+use winapi::shared::ntdef::NULL;+#[cfg(windows)]+use winapi::um::handleapi::CloseHandle;+#[cfg(windows)]+use winapi::um::processthreadsapi::{+  GetCurrentProcess, GetPriorityClass, OpenProcess, SetPriorityClass,+};+#[cfg(windows)]+use winapi::um::winbase::{+  ABOVE_NORMAL_PRIORITY_CLASS, BELOW_NORMAL_PRIORITY_CLASS,+  HIGH_PRIORITY_CLASS, IDLE_PRIORITY_CLASS, NORMAL_PRIORITY_CLASS,+  REALTIME_PRIORITY_CLASS,+};+#[cfg(windows)]+use winapi::um::winnt::PROCESS_QUERY_LIMITED_INFORMATION;+#[cfg(target_os = "macos")]+#[allow(non_camel_case_types)]+type priority_t = i32;+#[cfg(target_os = "linux")]+#[allow(non_camel_case_types)]+type priority_t = u32;++pub const PRIORITY_LOW: i32 = 19;+pub const PRIORITY_BELOW_NORMAL: i32 = 10;+pub const PRIORITY_NORMAL: i32 = 0;+pub const PRIORITY_ABOVE_NORMAL: i32 = -7;+pub const PRIORITY_HIGH: i32 = -14;+pub const PRIORITY_HIGHEST: i32 = -20;++#[cfg(unix)]+pub fn get_priority(pid: u32) -> Result<i32, OpError> {+  unsafe {+    set_errno(Errno(0));+    match (+      libc::getpriority(PRIO_PROCESS as priority_t, pid as id_t),+      errno(),+    ) {+      (-1, Errno(0)) => Ok(PRIORITY_HIGH),+      (-1, _) => Err(OpError::from(std::io::Error::last_os_error())),+      (priority, _) => Ok(priority),+    }+  }+}++#[cfg(unix)]+pub fn set_priority(pid: u32, priority: i32) -> Result<(), OpError> {+  unsafe {+    match libc::setpriority(PRIO_PROCESS as priority_t, pid as id_t, priority) {+      -1 => Err(OpError::from(std::io::Error::last_os_error())),+      _ => Ok(()),+    }+  }+}++#[cfg(windows)]+pub fn get_priority(pid: u32) -> Result<i32, OpError> {+  unsafe {+    let handle = if pid == 0 {+      GetCurrentProcess()+    } else {+      OpenProcess(PROCESS_QUERY_LIMITED_INFORMATION, FALSE, pid as DWORD)+    };+    if handle == NULL {+      Err(OpError::from(std::io::Error::last_os_error()))+    } else {+      let result = match GetPriorityClass(handle) {+        0 => Err(OpError::from(std::io::Error::last_os_error())),+        REALTIME_PRIORITY_CLASS => Ok(PRIORITY_HIGHEST),+        HIGH_PRIORITY_CLASS => Ok(PRIORITY_HIGH),+        ABOVE_NORMAL_PRIORITY_CLASS => Ok(PRIORITY_ABOVE_NORMAL),+        NORMAL_PRIORITY_CLASS => Ok(PRIORITY_NORMAL),+        BELOW_NORMAL_PRIORITY_CLASS => Ok(PRIORITY_BELOW_NORMAL),+        IDLE_PRIORITY_CLASS => Ok(PRIORITY_LOW),+        _ => Ok(PRIORITY_LOW),+      };+      CloseHandle(handle);+      result+    }+  }+}++#[cfg(windows)]+pub fn set_priority(pid: u32, priority: i32) -> Result<(), OpError> {+  unsafe {+    let handle = if pid == 0 {+      GetCurrentProcess()+    } else {+      OpenProcess(PROCESS_QUERY_LIMITED_INFORMATION, FALSE, pid as DWORD)+    };+    if handle == NULL {+      Err(OpError::from(std::io::Error::last_os_error()))+    } else {+      let prio_class = match priority {+        p if p <= PRIORITY_HIGHEST => REALTIME_PRIORITY_CLASS,+        p if PRIORITY_HIGHEST < p && p <= PRIORITY_HIGH => HIGH_PRIORITY_CLASS,+        p if PRIORITY_HIGH < p && p <= PRIORITY_ABOVE_NORMAL => {+          ABOVE_NORMAL_PRIORITY_CLASS+        }+        p if PRIORITY_ABOVE_NORMAL < p && p <= PRIORITY_NORMAL => {+          NORMAL_PRIORITY_CLASS+        }+        p if PRIORITY_NORMAL < p && p <= PRIORITY_BELOW_NORMAL => {+          BELOW_NORMAL_PRIORITY_CLASS+        }+        _ => IDLE_PRIORITY_CLASS,+      };+      let result = match SetPriorityClass(handle, prio_class) {+        FALSE => Err(OpError::from(std::io::Error::last_os_error())),+        _ => Ok(()),+      };+      CloseHandle(handle);+      result+    }+  }+}++#[cfg(test)]+mod tests {+  use super::*;++  #[test]+  fn test_get_current_process_priority() {+    get_priority(0).expect("Should get priority");+  }++  #[cfg(unix)]+  #[test]+  fn test_set_current_process_high_priority_should_fail() {+    assert!(set_priority(0, PRIORITY_HIGH).is_err());+  }++  /// this test makes multiple tests at once+  /// because we need to set them in order and rust+  /// does not garanty test order execution

yes, i'm not a native speaker, so i tend to do some of these.

ecyrbe

comment created time in a month

Pull request review commentdenoland/deno

fest(std/node): implement os.getPriority() and os.setPriority()

 test(function osPid(): void {   assert(Deno.pid > 0); }); +test(function testGetPriority(): void {

i'll add more then.

ecyrbe

comment created time in a month

Pull request review commentdenoland/deno

fest(std/node): implement os.getPriority() and os.setPriority()

 test(function osPid(): void {   assert(Deno.pid > 0); }); +test(function testGetPriority(): void {+  const priority = Deno.getPriority();+  console.log("priority", priority);

yes, this will mean 3 test suites :

  • rust tests
  • cli ts tests
  • node ts tests

but if one day we drop node api, we need to have node layer. i'll almost copy node tests to test the same features

ecyrbe

comment created time in a month

Pull request review commentdenoland/deno

fest(std/node): implement os.getPriority() and os.setPriority()

 declare namespace Deno {   /** Exit the Deno process with optional exit code. */   export function exit(code?: number): never; +  /** Get process priority */+  export function getPriority(pid?: number): number;++  /** Set process priority */

idem, on my way to do it

ecyrbe

comment created time in a month

Pull request review commentdenoland/deno

fest(std/node): implement os.getPriority() and os.setPriority()

 declare namespace Deno {   /** Exit the Deno process with optional exit code. */   export function exit(code?: number): never; +  /** Get process priority */

i aggree will do.

ecyrbe

comment created time in a month

issue commentdenoland/deno

Support missing OS functionality

Or if we are not confident enought, use a libuv binding : https://docs.rs/libuv-sys2/1.34.4/libuv_sys2/ but this would be a huge depedency that i'm not sure we want to pay such a price.

cknight

comment created time in a month

delete branch ecyrbe/deno

delete branch : feature/resources-tests

delete time in a month

issue commentdenoland/deno

Support missing OS functionality

CC @ry can i use the crate systemstat to implement :

  • freemem()
  • totalmem()
  • cpus()
  • uptime()

and more...

it is under more activity than sys_info and made entirely in rust. unlike what the documentation suggests, the author added windows support for all of these.

I really don't wan't to make my own /proc/stat /proc/cpuinfo parser and windows compatibility module if someone already made one.

your call.

cknight

comment created time in a month

pull request commentdenoland/deno

Endianness

implements part of #3802

cknight

comment created time in a month

PR opened denoland/deno

feat(std/node): add os.tmpdir() implementation

<!-- Before submitting a PR, please read https://deno.land/std/manual.md#contributing --> this PR implement node os.tmpdir() function. see #3802 and #3403 .

i just extended current Deno.dir(kind) to support tmp directory.

+38 -11

0 comment

6 changed files

pr created time in a month

create barnchecyrbe/deno

branch : feature/std-node-os-tmpdir

created branch time in a month

issue commentdenoland/deno

Discussion: encoders/decoders and protocols

I'm no deno maintainer, but in my point of view, there is a big downside having a lot of those implemented in deno (especially databases). The more you add to deno, the more it becomes a nightmare to maintain. Node grew big, because it was minimal and let everybody build upon it.

my stance is this one :

  • if there is a w3c specification for it, deno should ask itself if it should implement it. sometimes it might not make same (like webrtc)
  • if there is no w3c specification, but an rfc that is small enough, deno should also ask itself if it has any benefit in implementing it (like jwt tokens that are for me more important than the ones in your list)
  • if there are none of the above, i think deno should have no business implementing them.
timreichen

comment created time in a month

starteddenoland/deno

started time in a month

pull request commentdenoland/deno

Add global "quiet" flag

@codeflo what is the purpose of the hq file ? it seems really big.

codeflo

comment created time in a month

Pull request review commentdenoland/deno

Cleanup comments and internal variables

 fn op_chown(   let is_sync = args.promise_id.is_none();   blocking_json(is_sync, move || {     debug!("op_chown {}", path.display());+    /*     match deno_fs::chown(args.path.as_ref(), args.uid, args.gid) {       Ok(_) => Ok(json!({})),       Err(e) => Err(OpError::from(e)),     }+    */

We should remove this comment altogether

dubiousjim

comment created time in a month

pull request commentdenoland/deno

fest(std/node): implement os.getPriority() and os.setPriority()

@cknight @ry this is ready for review if you want

ecyrbe

comment created time in a month

push eventecyrbe/deno

ecyrbe

commit sha f8994cb7e92e9cb2e3386aac665bd8c39ddaceb9

fest(std/node): implement os.getPriority() and os.setPriority()

view details

push time in a month

push eventecyrbe/deno

ecyrbe

commit sha 8ca3bcece8c7f60e716793ba4363ecc21846fa49

fix: linter on windows

view details

push time in a month

push eventecyrbe/deno

ecyrbe

commit sha 12bc4713cd1dd9da363417c7b677a70c91151ea9

test: diagnotical commit

view details

push time in a month

push eventecyrbe/deno

ecyrbe

commit sha e0ded1511e01e163e165611bb3faad93696cb54a

fix: setpriority execution order

view details

push time in a month

push eventecyrbe/deno

ecyrbe

commit sha f3e4417a1d9893db478d0b779abef72f424b5472

test: desactivate setpriority tests for macos

view details

push time in a month

issue commentdenoland/deno

unit test failing due to fs event

@bartlomieju any idea why this fs event test panics ?

ecyrbe

comment created time in a month

issue commentdenoland/deno

Top-level for-await not working

Please read the typescript release notes : https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-8.html#top-level-await

Top level avait only work for modules

davidbailey00

comment created time in a month

issue openeddenoland/deno

unit test failing due to fs event

I get these on my PR, that do not seem to be related to code i pushed #4202 :

OK     fsEventsBasic (2.00ms)
##[error]thread '<unnamed>' panicked at 'fs events error: SendError(Ok(FsEvent { kind: "modify", paths: ["/tmp/8259b2ca/file2.txt"] }))', src/libcore/result.rs:1188:5

created time in a month

pull request commentdenoland/deno

Filesystem4

hi @dubiousjim , this is a lot of work, so first things first, thanks.

Now i do agree that you should try to make things as separate small PR.

For exemple, each new feature i do that only add one function to ops is a PR because it add already a lot of stuff to a lot of files. for exemple as i'm doing std/node/os this mean i'm preparing around 16 PR. i do no refactoring in these PR, and they are already individually long to review.

It only takes discipline to create a branch for everything you do that are not related. once you are used to do it, you'll never go back.

dubiousjim

comment created time in a month

push eventecyrbe/deno

Bert Belder

commit sha ba0991ad2ba89b7a788a866419759d858b125663

Refactor exception handling, remove message listener callback (#4198)

view details

ecyrbe

commit sha 4d597cefee87854b885d2a363a2707cee28190b6

fest(std/node): implement os.getPriority() and os.setPriority()

view details

ecyrbe

commit sha 6518d69f2aac3dba730827ec21da52b4f77412e3

fix(std/node): use common priority type

view details

ecyrbe

commit sha d172e11ed33de45c3d4a96f49dadb6d67bbf86e9

test: add more tests and desactivate unimplemented tests

view details

ecyrbe

commit sha 16cca69fad93771c52d0c824b6838a8a25b2113f

fix: import correct HANDLE

view details

ecyrbe

commit sha de2c35929bb51baca2f297d838af04b947af1746

test: fix macos tests

view details

ecyrbe

commit sha f180e6ffc8a5a2c65367f9af4d9450041a673b4c

test: desactivate setpriority tests for macos

view details

push time in a month

push eventecyrbe/deno

ecyrbe

commit sha 3aa15b93407edf70c7044b9828b993f402ede497

test: desactivate setpriority tests for macos

view details

push time in a month

push eventecyrbe/deno

ecyrbe

commit sha e537177475b4e8b854355fe023f6252ab400e33f

test: fix macos tests

view details

push time in a month

push eventecyrbe/deno

ecyrbe

commit sha 6e9f972264ad5bd7963ee8f8a64c30334a82acf0

fest(std/node): implement os.getPriority() and os.setPriority()

view details

ecyrbe

commit sha 403cad1fc6036742b238d4bf79167768fe7908a9

fix(std/node): use common priority type

view details

ecyrbe

commit sha 44b9bbf2a2f62fc64051e811bd9397511429637b

test: add more tests and desactivate unimplemented tests

view details

ecyrbe

commit sha 947653f0739e2c7e64298db665a925c38d0ac657

fix: import correct HANDLE

view details

push time in a month

push eventecyrbe/deno

ecyrbe

commit sha f7a3d2ca2605cef00301138eccc4ad51cc1e5453

fix(std/node): use common priority type

view details

ecyrbe

commit sha d4db598e4e4804dcf6bb121ce4a3ace82c0cfa02

test: add more tests and desactivate unimplemented tests

view details

ecyrbe

commit sha 7065898a544a6a8165a0000e3ce497fec20fc5d7

fix: import correct HANDLE

view details

push time in a month

push eventecyrbe/deno

ecyrbe

commit sha 2e4b1d7df37ec820453966f30e6bdf9d69e953ec

test: add more rust tests

view details

ecyrbe

commit sha 6475301ffab835fde559a2d41f2c9356ff7dc7da

fix: import correct HANDLE

view details

push time in a month

push eventecyrbe/deno

ecyrbe

commit sha df46efedfa917b68cfb503e2a2f1315c0b6dede9

test: add more tests

view details

push time in a month

pull request commentdenoland/deno

fest(std/node): implement os.getPriority() ans os.setPriority()

Looks like the test for API not yet implemented still contains calls to os.getPriority() and os.setPriority(). Hopefully those tests now fail! See lines 212 and 226 in std/node/os_test.ts.

Thanks for the catch. the test for the api was implemented, but these one where not removed.

ecyrbe

comment created time in a month

push eventecyrbe/deno

ecyrbe

commit sha 745c1d0c2efd8bc86fe771a40b7edd3ee60c4cd0

test: tests are now implemented

view details

push time in a month

push eventecyrbe/deno

ecyrbe

commit sha fbec815857a46e12b222e3467f133e1fd1910c0b

style: fix linter

view details

push time in a month

push eventecyrbe/deno

ecyrbe

commit sha 3125532b7fad538a64bfb355297d0cc58b91a794

fix(std/node): use common priority type

view details

push time in a month

push eventecyrbe/deno

ecyrbe

commit sha 0d44fa6e992f4bbfd971ecbaf1008d71191929b7

fix(std/node): use common priority type

view details

push time in a month

push eventecyrbe/deno

ecyrbe

commit sha 2c4fd40fb08d7d3dc79f1fa6237cfe24b5780600

fix(std/node): use libc decl priority types

view details

push time in a month

PR opened denoland/deno

fest(std/node): implement os.getPriority() ans os.setPriority()

<!-- Before submitting a PR, please read https://deno.land/std/manual.md#contributing --> this PR implement node os priority feature. see #3802 and #3403 .

It looks like it adds errno dependency, but is was already used by our current dependencies and listed in cargo.lock.

+230 -6

0 comment

11 changed files

pr created time in a month

create barnchecyrbe/deno

branch : feature/std-node-os-priority

created branch time in a month

issue commentdenoland/deno

Discussion: should ResourceTable use contiguous or random numbers and use 32 bits rid's?

To see a example of what doing it randomly implies, see this PR #4079

ecyrbe

comment created time in a month

pull request commentdenoland/deno

test: add ResourceTable tests

@ry no worries, i jumped into this without setting a proper discussion. i created one for this purpose. take your time to decide, no need to hurry.

ecyrbe

comment created time in a month

issue commentdenoland/deno

Support missing OS functionality

i'm currently working on this

cknight

comment created time in a month

issue commentdenoland/deno

Add Node.js native module polyfills to std/node

currently working on os stuff impl.

kevinkassimo

comment created time in a month

issue commentdenoland/deno

Should ResourceTable use contiguous or random numbers and be 32 bits?

To add to this, there is a current bug with deno impl : If the deno process run long enought time, there will be more than 2 billions fd allocations, then these fd will be passed as i32 over typescript and then unusable (it will trigger a panic due to unsigned number convertion to signed number overflow).

ecyrbe

comment created time in a month

issue openeddenoland/deno

Should ResourceTable use contiguous or random numbers and be 32 bits?

In resource table, there is this one comment :

  // TODO: resource id allocation should probably be randomized for security.
  fn next_rid(&mut self) -> ResourceId {
...
}

Should we implement this or remove the comment and let resources contiguous allocation? To add to the discussion, on linux kernel side, they are contiguous :

int __alloc_fd(struct files_struct *files,
           unsigned start, unsigned end, unsigned flags)
{
    ...
    fd = files->next_fd;
    ...
    if (start <= files->next_fd)
        files->next_fd = fd + 1;

Do we want to give the deno users more security/allocation garanties than linux system ?

Subsidiary question, linux file handles are 64 bits on 64 bits system. Shouldn't we allow deno users to handle more than 2 billion handles, or is this limit fair?

created time in a month

PR opened denoland/deno

test: add ResourceTable tests

<!-- Before submitting a PR, please read https://deno.land/std/manual.md#contributing -->

+57 -0

0 comment

1 changed file

pr created time in a month

create barnchecyrbe/deno

branch : feature/resources-tests

created branch time in a month

push eventecyrbe/deno

Kitson Kelly

commit sha 2b7e28b591a6947f76ddf9a53f49eec8f1accc0f

feat: Add Deno.formatDiagnostics (#4032)

view details

Nayeem Rahman

commit sha db597055958a9dbc9c8e633e01d9229b55d1d6ef

doc: Remove old link to deno types output (#4111)

view details

Bartek Iwańczuk

commit sha e1687c0a4616e90d4bbde42b13a0356a7f6a1e7d

rename Deno.Err -> Deno.errors (#4093)

view details

Ryan Dahl

commit sha f4fd433e1aa6c8c086c38df39c39bec23c56a29c

Add Deno.Err change missing from previous commit (#4113)

view details

Suguru Motegi

commit sha 79c6e052ed29b9b78c31f2e01da3b91f76b6a017

fix: createSecKey logic (#4063)

view details

Ryan Dahl

commit sha 4005174f6c584fd5200dbe450b269a7f0de487ce

Revert "Remove ansi_term dependency" Broke colors https://github.com/denoland/deno/issues/4112#issuecomment-590545385 This reverts commit c250778704a4e0065e54e6bf6ca6c39d556a6d8d.

view details

João Souto

commit sha ac933dd1b89a20b2e63b5d6edc5b3d0c549335bc

port tools/repl_test.py to Rust (#4096) ref #2988

view details

João Souto

commit sha 5c1ab080cd8989c3ac2b3a8c919fe14052feac79

Remove ansi_term dependency (#4116)

view details

Yusuke Sakurai

commit sha 22f88b9f37b7e233fd4f15b73d5a2096224e56dc

fix: [http] Consume unread body and trailers before reading next request (#3990) - Added `ServerRequest.finalize()`: consuming all unread body stream and trailers. - This is cleanup method for reading next request from same keep-alive connection. - Needed when handler didn't consume all body and trailers even after responding. - refactor: `ServerRequest._bodyStream()`, `ServerRequestBody` are removed. - Now using `bodyReader()` and `chunkedBodyReader()` instead. - fix: Trailers should only be read `transfer-encoding` is `chunked` and `trailer` header is set and its value is valid. - fix: use `Headers.append()` on reading trailers. - fix: delete `trailer` field from headers after reading trailers. - reorg: Several functions related to IO are moved into `http/io.ts`

view details

Kitson Kelly

commit sha 805992b14a65a6dbfb857dea6d9b657477de043d

Fix issues with JavaScript importing JavaScript. (#4120) Fixes #3852 Fixes #4117

view details

Ryan Dahl

commit sha 91b606aaae23bcb790b55adc5fe70a182a37d564

Clean up how we use opIds (#4118)

view details

Nayeem Rahman

commit sha 14e7e1e3af43b2322a26fcc542428c8f1af4460d

fix: Resolve makeTemp* paths from CWD (#4104)

view details

Ryan Dahl

commit sha fe181e2b4850a83344f0aa5840fffe97c8cb8839

ci: Use fetch-depth: 5 (#4127)

view details

Ryan Dahl

commit sha f47f3f96726a94dd2df5d68e3c786b5079089dd4

Remove _async from method names since _sync are gone (#4128)

view details

Kitson Kelly

commit sha be787d09d537d6c1a6846168613dd0defe069448

upgrade: TypeScript 3.8 (#4100)

view details

João Souto

commit sha e53064c4f22efeb8a4eda2712e15c77d2699a686

Port permission_prompt_tests to Rust (#4129)

view details

Kevin (Kun) "Kassimo" Qian

commit sha 5946808f66aab1983ade3db2541734bb43626a72

tty: Deno.setRaw(rid, mode) to turn on/off raw mode (#3958)

view details

Bartek Iwańczuk

commit sha 0e37184ca8084c257948d466c066fdb875ee44f3

add window.self read-only property (#4131)

view details

Ryan Dahl

commit sha 3d03d7e83b855a0eaef083f9ba249b1927eba51c

Fix flaky tests (#4134)

view details

Ryan Dahl

commit sha 3eebef39c55ead92d17bdf8016c3c58118b49936

upgrade: dprint 0.7.0 (#4130) * upgrade: dprint 0.7.0 Also make deno fmt less verbose (like cargo fmt)

view details

push time in a month

PR closed denoland/deno

Reviewers
feat(ResourceTable): randomize rid generation

This PR adds randomization of resource id generation. The downside: it adds rand crate to core.

+102 -8

11 comments

4 changed files

ecyrbe

pr closed time in a month

pull request commentdenoland/deno

feat(ResourceTable): randomize rid generation

no activity since last update. closing.

ecyrbe

comment created time in a month

Pull request review commentdenoland/deno

feat(ResourceTable): randomize rid generation

 impl ResourceTable {     None   } -  // TODO: resource id allocation should probably be randomized for security.+  // resource id allocation are randomized for security.   fn next_rid(&mut self) -> ResourceId {-    let next_rid = self.next_id;-    self.next_id += 1;-    next_rid as ResourceId+    let mut rng = rand::thread_rng();+    // rid's are cast into i32 then interpreted as unsigned number on typescript side.+    // then when sending rid's back to Rust the cast back to i32 fails as it overflows.+    // here we make the generated rid a valid positive i32 to prevent overflow+    let mut next_rid = rng.gen::<u32>() & 0x7FFF_FFFF;+    while self.map.contains_key(&next_rid) {

why? this would make the whole system unstable.

ecyrbe

comment created time in a month

Pull request review commentdenoland/deno

feat(ResourceTable): randomize rid generation

 impl ResourceTable {     None   } -  // TODO: resource id allocation should probably be randomized for security.+  // resource id allocation are randomized for security.   fn next_rid(&mut self) -> ResourceId {-    let next_rid = self.next_id;-    self.next_id += 1;-    next_rid as ResourceId+    let mut rng = rand::thread_rng();

no, it uses system generated seed.

ecyrbe

comment created time in a month

pull request commentdenoland/deno

feat(ResourceTable): randomize rid generation

@kevinkassimo I do agree. Thanks for your feedback, it's really appreciated. I guess i should have opened an issue to have these kind of discussion before and not after impl. if we don't want it, we should at least take the tests part of it as there was no tests for ResourceTable before this PR.

ecyrbe

comment created time in a month

pull request commentdenoland/deno

feat(ResourceTable): randomize rid generation

@kevinkassimo my proposal already takes Care about collisions.

ecyrbe

comment created time in a month

pull request commentdenoland/deno

feat(ResourceTable): randomize rid generation

@kevinkassimo also never underestimate security issues ans how they will be exploited. Iterating over 2 billion rid from a network API exposed by deno web service ( round trip time, complexity of the exploit to gain access to deno rid from said API etc ) will prove to already be a hard job, but making rid random will make such exploit unfeasable. but i'm all for making them u64 and random. More security.

ecyrbe

comment created time in a month

pull request commentdenoland/deno

[feat] Continuation of node fs polyfill with directory support

hi again, this one seems missing in your implementation :

cknight

comment created time in a month

issue commentdenoland/deno

move close op to `io` ops

oh! a chance i only made chown/fchown/fchmod. i'll let you advance before adding anything more for fs node module. i'll finish node/os module instead.

bartlomieju

comment created time in a month

Pull request review commentdenoland/deno

feat(ResourceTable): randomize rid generation

 impl ResourceTable {     None   } -  // TODO: resource id allocation should probably be randomized for security.+  // resource id allocation are randomized for security.   fn next_rid(&mut self) -> ResourceId {-    let next_rid = self.next_id;-    self.next_id += 1;-    next_rid as ResourceId+    let mut rng = rand::thread_rng();+    let mut next_rid = rng.gen::<u32>() & 0x7FFF_FFFF;

i actually need feedback on this, so i'll not resolve

ecyrbe

comment created time in a month

push eventecyrbe/deno

Yusuke Sakurai

commit sha 162d66d23fe984d7ac0396faacb8800f19a719fd

fix: chat example's content-security-policy (#4091)

view details

uki00a

commit sha fe9ac35a650dfeea9168fc1cbbbf323b5689fc3b

fix(std/examples): add tests for examples (#4094)

view details

ecyrbe

commit sha fb08cf7005c9dc781d51c7d02ae06060e44d32a3

Add missing node os.release() implementation (#4065)

view details

Yoshiya Hinosawa

commit sha c080d7fba34fa9114e191b171d6a810312d74343

fix: add mutex guard for permission_prompt tests (#4105) This PR introduces the mutex guard for the test cases which depends on the permission prompt mocking utility. permission_request test cases depend on the mocked (dummy) value of the permission_prompt result. The value is stored at static STUB_PROMPT_VALUE: AtomicBool and these test cases share this value. So we should lock at the start of these test cases. Before this change cargo test permission failed 6 times out of 20. After this change, 0 times out of 20 (on my mac).

view details

João Souto

commit sha c250778704a4e0065e54e6bf6ca6c39d556a6d8d

Remove ansi_term dependency (#4106)

view details

Matthew Lennon

commit sha c74684ed901b7313c317aa32aaad92841b3cd6d3

update build instructions for windows (#4027)

view details

Bartek Iwańczuk

commit sha 5da7c7df1d8649ddb5628b4dc830aa8c23ccb488

disable std/examples/chat tests for windows (#4109)

view details

Kitson Kelly

commit sha 2b7e28b591a6947f76ddf9a53f49eec8f1accc0f

feat: Add Deno.formatDiagnostics (#4032)

view details

Nayeem Rahman

commit sha db597055958a9dbc9c8e633e01d9229b55d1d6ef

doc: Remove old link to deno types output (#4111)

view details

ecyrbe

commit sha c698a8c1edf2ae45a7388cc3e64fa2a132421ee8

feat(ResourceTable): randomize rid generation

view details

ecyrbe

commit sha 94066956e3b098723a8efe50da79aa321dc24d85

fix: clear the bit sign as rid are passed as i32 to typescript another solution would be to use u32 everywhere, but that need a study to not break everything

view details

ecyrbe

commit sha 31309fe1abe0ada23f64601e512d9dc6c1749b67

fix: typescript side expects to have std io in defined rid

view details

ecyrbe

commit sha dc4ecddf5e2febb5ce65721dc615f97ea321747d

test(ResourceTable): added missing tests

view details

ecyrbe

commit sha 42a02ce6d394f50170f9e9924f7fc78ede73f506

test: update tests

view details

ecyrbe

commit sha a9fce9c25fd3ba344f4a97118aa8166a740aa527

chore: explain placement add and rid overflow

view details

push time in a month

push eventecyrbe/deno

EnokMan

commit sha 14129b6c8f3335b215a2d9614c4523e8e3200e82

feat: support brotli compression for fetch API (#4082)

view details

Kevin (Kun) "Kassimo" Qian

commit sha bf48f5fa5a15e01d6f8b7eb7c3e70f6ecc91fa23

Move WebAsssembly namespace to shared_globals (#4084)

view details

Kevin (Kun) "Kassimo" Qian

commit sha e9fff02e9681f3eb2edee9f94db66b140e179899

fetch: proper error for unsupported protocol (#4085)

view details

Yusuke Sakurai

commit sha d9886a44d107de48b312ba71833709494b5ade5e

fix: [ws] sock shouldn't throw eof error when failed to read frame (#4083)

view details

Ben Noordhuis

commit sha 45eb2f9b37c2c7498c58eb45f76667aaa4a7d731

feat(std/node): add os Symbol.toPrimitive methods (#4073) Node's os module exports a number of methods that evaluate to themselves when coerced to a primitive. I.e., `"" + os.arch` and `os.arch()` evaluate to the same string, and now Deno's shims do too.

view details

Bartek Iwańczuk

commit sha 4e1abb4f3a1fbdac25b1e7db0588572e4d5a6579

refactor: use OpError instead of ErrBox for errors in ops (#4058) To better reflect changes in error types in JS from #3662 this PR changes default error type used in ops from "ErrBox" to "OpError". "OpError" is a type that can be sent over to JSON; it has all information needed to construct error in JavaScript. That made "GetErrorKind" trait useless and so it was removed altogether. To provide compatibility with previous use of "ErrBox" an implementation of "From<ErrBox> for OpError" was added, however, it is an escape hatch and ops implementors should strive to use "OpError" directly.

view details

Yusuke Sakurai

commit sha 162d66d23fe984d7ac0396faacb8800f19a719fd

fix: chat example's content-security-policy (#4091)

view details

uki00a

commit sha fe9ac35a650dfeea9168fc1cbbbf323b5689fc3b

fix(std/examples): add tests for examples (#4094)

view details

ecyrbe

commit sha fb08cf7005c9dc781d51c7d02ae06060e44d32a3

Add missing node os.release() implementation (#4065)

view details

Yoshiya Hinosawa

commit sha c080d7fba34fa9114e191b171d6a810312d74343

fix: add mutex guard for permission_prompt tests (#4105) This PR introduces the mutex guard for the test cases which depends on the permission prompt mocking utility. permission_request test cases depend on the mocked (dummy) value of the permission_prompt result. The value is stored at static STUB_PROMPT_VALUE: AtomicBool and these test cases share this value. So we should lock at the start of these test cases. Before this change cargo test permission failed 6 times out of 20. After this change, 0 times out of 20 (on my mac).

view details

João Souto

commit sha c250778704a4e0065e54e6bf6ca6c39d556a6d8d

Remove ansi_term dependency (#4106)

view details

Matthew Lennon

commit sha c74684ed901b7313c317aa32aaad92841b3cd6d3

update build instructions for windows (#4027)

view details

Bartek Iwańczuk

commit sha 5da7c7df1d8649ddb5628b4dc830aa8c23ccb488

disable std/examples/chat tests for windows (#4109)

view details

push time in a month

push eventecyrbe/deno

EnokMan

commit sha 14129b6c8f3335b215a2d9614c4523e8e3200e82

feat: support brotli compression for fetch API (#4082)

view details

Kevin (Kun) "Kassimo" Qian

commit sha bf48f5fa5a15e01d6f8b7eb7c3e70f6ecc91fa23

Move WebAsssembly namespace to shared_globals (#4084)

view details

Kevin (Kun) "Kassimo" Qian

commit sha e9fff02e9681f3eb2edee9f94db66b140e179899

fetch: proper error for unsupported protocol (#4085)

view details

Yusuke Sakurai

commit sha d9886a44d107de48b312ba71833709494b5ade5e

fix: [ws] sock shouldn't throw eof error when failed to read frame (#4083)

view details

Ben Noordhuis

commit sha 45eb2f9b37c2c7498c58eb45f76667aaa4a7d731

feat(std/node): add os Symbol.toPrimitive methods (#4073) Node's os module exports a number of methods that evaluate to themselves when coerced to a primitive. I.e., `"" + os.arch` and `os.arch()` evaluate to the same string, and now Deno's shims do too.

view details

Bartek Iwańczuk

commit sha 4e1abb4f3a1fbdac25b1e7db0588572e4d5a6579

refactor: use OpError instead of ErrBox for errors in ops (#4058) To better reflect changes in error types in JS from #3662 this PR changes default error type used in ops from "ErrBox" to "OpError". "OpError" is a type that can be sent over to JSON; it has all information needed to construct error in JavaScript. That made "GetErrorKind" trait useless and so it was removed altogether. To provide compatibility with previous use of "ErrBox" an implementation of "From<ErrBox> for OpError" was added, however, it is an escape hatch and ops implementors should strive to use "OpError" directly.

view details

ecyrbe

commit sha d43d45733f6a10ff911acebf18449daaddfbbb52

feat(ResourceTable): randomize rid generation

view details

ecyrbe

commit sha b85abe5b7c7bae3f492938efbbbc977228e380fb

fix: clear the bit sign as rid are passed as i32 to typescript another solution would be to use u32 everywhere, but that need a study to not break everything

view details

ecyrbe

commit sha 94be9ee1b540206e835b77829aeca01414391c66

fix: typescript side expects to have std io in defined rid

view details

ecyrbe

commit sha be902cbbad0047f6901c1d1265193a5a11463796

test(ResourceTable): added missing tests

view details

ecyrbe

commit sha fe064016e561fc1f8a04c73729acbeeb004859bc

test: update tests

view details

ecyrbe

commit sha 44d7937848454651d3d77249d859ee2d8fca04ae

chore: explain placement add and rid overflow

view details

push time in a month

push eventecyrbe/deno

ecyrbe

commit sha a97f2d6077ac82b39ae94859dc4394231cb6cb71

test: update tests

view details

ecyrbe

commit sha 463865eeddcda1626ada4a9c58ffd47839b9cbf0

chore: explain placement add and rid overflow

view details

push time in a month

Pull request review commentdenoland/deno

feat(ResourceTable): randomize rid generation

 impl ResourceTable {     None   } -  // TODO: resource id allocation should probably be randomized for security.+  // resource id allocation are randomized for security.   fn next_rid(&mut self) -> ResourceId {-    let next_rid = self.next_id;-    self.next_id += 1;-    next_rid as ResourceId+    let mut rng = rand::thread_rng();+    let mut next_rid = rng.gen::<u32>() & 0x7FFF_FFFF;

In fact, no. But rid's are cast into i32 then interpreted as unsigned number on typescript side. Then when sending rid's back to Rust the cast back to i32 fails as it overflows. There are two options :

  • the one i took and make the generated rid a valid positive i32
  • make rid u32 on Ops api side. But there might be a good reason someone made them i32, and i did not have the Time to investigate why
ecyrbe

comment created time in a month

issue commentdenoland/deno

Add TestDefinition::skip

@sholladay This is not compatible with current syntax. The proposal don't disrupt current api. See test documentation.

nayeemrmn

comment created time in a month

issue commentdenoland/deno

discussion: adopt baretest-like testing API

After seing the proposal from @nayeemrmn to keep only one way to do tests with Deno.test() i like it better, but i would do it like this instead (to keep compatibility with current tests, ie the object becomes optional) :

let resourceSnapshot;
const suite = new Deno.TestSuite("my test suite", {
  beforeEach() {
    resourceSnapshot = Deno.resources();
  },
  afterEach() {
    const resources = Deno.resources();
    // diff with `resourceSnapshot` and ensure test
    // doesn't leak resources
    assertEquals(resourceSnapshot, resources, "test leaks resources");
  }
});

// always support the current behavior
Deno.test( fn() {
  //...
});

Deno.test({ suite }, fn() {
  // ...
});

// TODO: fixme, temporary disabled
Deno.test({ skip: true, suite }, fn() {
    // ...
});
bartlomieju

comment created time in a month

issue commentdenoland/deno

Add TestDefinition::skip

i like this.

nayeemrmn

comment created time in a month

push eventecyrbe/deno

ecyrbe

commit sha 941c1677e042ade728bf5c1ffa8818cd46bbd6be

fix: ErrBox -> opError

view details

push time in a month

push eventecyrbe/deno

EnokMan

commit sha 14129b6c8f3335b215a2d9614c4523e8e3200e82

feat: support brotli compression for fetch API (#4082)

view details

Kevin (Kun) "Kassimo" Qian

commit sha bf48f5fa5a15e01d6f8b7eb7c3e70f6ecc91fa23

Move WebAsssembly namespace to shared_globals (#4084)

view details

Kevin (Kun) "Kassimo" Qian

commit sha e9fff02e9681f3eb2edee9f94db66b140e179899

fetch: proper error for unsupported protocol (#4085)

view details

Yusuke Sakurai

commit sha d9886a44d107de48b312ba71833709494b5ade5e

fix: [ws] sock shouldn't throw eof error when failed to read frame (#4083)

view details

Ben Noordhuis

commit sha 45eb2f9b37c2c7498c58eb45f76667aaa4a7d731

feat(std/node): add os Symbol.toPrimitive methods (#4073) Node's os module exports a number of methods that evaluate to themselves when coerced to a primitive. I.e., `"" + os.arch` and `os.arch()` evaluate to the same string, and now Deno's shims do too.

view details

Bartek Iwańczuk

commit sha 4e1abb4f3a1fbdac25b1e7db0588572e4d5a6579

refactor: use OpError instead of ErrBox for errors in ops (#4058) To better reflect changes in error types in JS from #3662 this PR changes default error type used in ops from "ErrBox" to "OpError". "OpError" is a type that can be sent over to JSON; it has all information needed to construct error in JavaScript. That made "GetErrorKind" trait useless and so it was removed altogether. To provide compatibility with previous use of "ErrBox" an implementation of "From<ErrBox> for OpError" was added, however, it is an escape hatch and ops implementors should strive to use "OpError" directly.

view details

ecyrbe

commit sha 0ad5305a13b110ec8f661bd467914c5a00d58ec5

feat(os): add release impl

view details

ecyrbe

commit sha 9cdf412801c3856f45423e9d6d61867f991bb6de

docs(os/node): fix docs

view details

ecyrbe

commit sha 7b0de5d2b658fb31b2ec67eefdc2096602be84be

fix: linter

view details

ecyrbe

commit sha 3ddc01c5fc86805958e5beba82204d2f928d93eb

fix: use to_string for clarity

view details

ecyrbe

commit sha 77afe3fb32765d0272d553ecb8b71529907fce96

fix: ErrBox -> opError

view details

push time in a month

PR closed Caccc/gnome-shell-extension-weather

You can add this improved version to your git

This one adds configuration via gsettings and autotools support to ease installation and compilation for pot files. You can read the documentation on my project page

+3015 -443

2 comments

29 changed files

ecyrbe

pr closed time in a month

issue commentdenoland/deno

discussion: adopt baretest-like testing API

@bartlomieju Thanks, that clarifies everything.

So i guess what deno expose today is sufficiently deadly simple and maybe we should orient users to use more complex libraries when needing advanced testing functionnality.

What i dislike here is adding another way to write deno native tests. If hooks are really necessary, i would then advise going all in and remove Deno.test() api.

bartlomieju

comment created time in a month

issue commentdenoland/deno

discussion: adopt baretest-like testing API

@bartlomieju So we already have access to mocha hooks ? why not use them ?

bartlomieju

comment created time in a month

issue commentdenoland/deno

discussion: adopt baretest-like testing API

@bartlomieju Another silly question : so what about mocha + jspm as mocha does not rely on node and can run in the browser, and deno is almost like a browser : https://mochajs.org/#running-mocha-in-the-browser

bartlomieju

comment created time in a month

issue commentdenoland/deno

discussion: adopt baretest-like testing API

Maybe i'm confused, but what about making Jest deno compliant ? is it too much work ?

bartlomieju

comment created time in a month

pull request commentdenoland/deno

fetch: proper error for unsupported protocol

hi, the discussion on the issue seems to orient the solution to allow it but trigger proper allow-read on the directory. am i reading it wrong ?

kevinkassimo

comment created time in a month

pull request commentdenoland/deno

Add missing node os.release() implementation

using to_string instead of to_owned (is there a rule of thumb in deno for witch the team prefer to use ?) hence the two are now the same since : https://github.com/rust-lang/rust/pull/32586, but i think to_string is clearer (some think the opposite)

ecyrbe

comment created time in a month

push eventecyrbe/deno

ecyrbe

commit sha 1c9dae440c20e085d7c9fb055d17d35907762e0b

fix: use to_string for clarity

view details

push time in a month

issue openeddenoland/deno

Should'nt std/node be a plugin ?

As i'm going through std/node polyfill implementation, i'm adding more and more ops to Deno. This feels kind of bizarre. Not all node exposed API are well suited for Deno/cli/ops.

Sometimes they might profoundly differ from what deno wants to achieve. (ie: modules, policies)

Should't we make most of Node api only available on a plugin ? Meaning, only implement some desired API on Deno/cli/ops to expose them on both plugin/node and Deno ?

created time in a month

push eventecyrbe/deno

ecyrbe

commit sha 8fdfe9a54f822c2d2442efebd128ea8ba5cb3c88

test: improve random test resilience

view details

push time in a month

push eventecyrbe/deno

jigsaw

commit sha c34d96d86557d434bdf124063e4eec4662067c1e

Fix example (#4076)

view details

ecyrbe

commit sha fb98556d56d0defa325fab1296077627cce31aab

feat(std/node): add os.loadavg() (#4075)

view details

Yusuke Sakurai

commit sha 8b646e8657309e57bd4e907f911529e33e3a05fb

Added browser chat example (#4022)

view details

push time in a month

push eventecyrbe/deno

jigsaw

commit sha c34d96d86557d434bdf124063e4eec4662067c1e

Fix example (#4076)

view details

ecyrbe

commit sha fb98556d56d0defa325fab1296077627cce31aab

feat(std/node): add os.loadavg() (#4075)

view details

Yusuke Sakurai

commit sha 8b646e8657309e57bd4e907f911529e33e3a05fb

Added browser chat example (#4022)

view details

ecyrbe

commit sha 557076dd75a7612d79eb50b6652c23635aac3ef3

feat(ResourceTable): randomize rid generation

view details

ecyrbe

commit sha 7d3c1b30ced175af4cfddd0f05a738a789efa5ea

fix: clear the bit sign as rid are passed as i32 to typescript another solution would be to use u32 everywhere, but that need a study to not break everything

view details

ecyrbe

commit sha a346aee3868b943f7d3b737a86c34a53f76b96d3

fix: typescript side expects to have std io in defined rid

view details

ecyrbe

commit sha b2c5f42689a76c5818e79659dcdf8b6a14a16d4a

test(ResourceTable): added missing tests

view details

ecyrbe

commit sha 1ff815f2a465066c4b92ec3a7ce4d9dab34a9364

test: fix linter warnings

view details

push time in a month

delete branch ecyrbe/deno

delete branch : feature/add-node-os-loadavg

delete time in a month

push eventecyrbe/deno

ecyrbe

commit sha b7a07a46904f883d7a07f09d56967d680912b0c2

test: fix linter warnings

view details

push time in a month

more