profile
viewpoint

MarkTiedemann/cisco-vpn 10

Wrapper around the Cisco AnyConnect VPN client.

MarkTiedemann/deno.mk 5

Cross-platform Makefile for installing and running Deno.

MarkTiedemann/anydo 3

Unofficial Any.do client for Node.js.

angular-hamburg/react.angular.hamburg 2

The old angular.hamburg website for Hamburg's Angular Meetup, written in React.

MarkTiedemann/anydo-cli 1

Unofficial CLI app for Any.do.

angular-hamburg/api.angular.hamburg 0

The API for angular.hamburg

MarkTiedemann/air.note 0

Simple notepad that works in airplane-mode.

MarkTiedemann/assertion_error 0

Error constructor for test and validation frameworks that implements standardized AssertionError specification.

MarkTiedemann/awesome-deno 0

🎉A curated list of awesome things related to Deno

startedrswier/c4

started time in an hour

issue commentdenoland/deno

Support continuation/async local storage

Not sure I understand your feature request. Can you sketch the API?

I noticed that you created the @northscaler/continuation-local-storage module. Why do you want this module (or something similar) to be a part of Deno (I presume, the standard library) rather than a third-party module?

matthewadams

comment created time in 3 days

issue commentdenoland/deno

type error from the imports

@Conando025 I can reproduce your error if I use different versions of https://deno.land/std/http/server.ts and https://deno.land/std/ws/mod.ts, e.g. if std/http/server is v0.63.0 and std/ws/mod is v0.62.0. If both use the same std version, it's fine.

Conando025

comment created time in 11 days

issue commentdenoland/deno_website2

Wanted: provide a list of version information

@lucacasonato Where can I find the source code / docs for the API?

I'd like to add a feature for returning the latest version in plain text. :)

zhmushan

comment created time in 11 days

issue commentdenoland/deno_website2

Wanted: provide a list of version information

Sweet, that's perfect! Thanks. :)

zhmushan

comment created time in 11 days

issue commentdenoland/deno_website2

Wanted: provide a list of version information

https://cdn.deno.land/deno/meta/versions.json

That's nice.

Unfortunately, I think it's not usable for determining the latest Deno version for downloading the latest Deno binary. That is because there is a time difference between the git tag being pushed and the binaries being built and uploaded. For example, v1.2.2 was tagged at 2020-07-31T19:14:25Z, the GitHub release was created at 2020-07-31T21:06:46Z, almost 2h later, (and the binaries may have been added to the release even later?). That's why, in deno_install, we're currently parsing the HTML of the GitHub releases page to figure out the "latest release for the specific platform" - "latest" meaning "binary is available for download".

A quick and dirty solution would be something like this: https://gist.github.com/MarkTiedemann/6ec5dc6b4f968296fa7e7b578ca91ad6 A better solution would need to be integrated into the release process.

zhmushan

comment created time in 12 days

issue commentdenoland/deno

type error from the imports

@Conando025 The import statement is incorrect:

import("https://deno.land/std/io/bufio").BufReader

It's should be a static import:

import { BufReader } from "https://deno.land/std@0.63.0/io/bufio.ts";

Or a dynamic import:

const { BufReader } = await import("https://deno.land/std@0.63.0/io/bufio.ts");

See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import for more info.

Conando025

comment created time in 12 days

issue commentdenoland/deno_website2

Wanted: provide a list of version information

@lucacasonato This issue is not about the version of a module, but about Deno's version.

This is similar to https://github.com/denoland/deno_install/issues/115.

zhmushan

comment created time in 12 days

issue commentdenoland/deno

Question: install scripts with external assets

@swwind Documentation is missing, but the code is useable and tested: https://github.com/MarkTiedemann/deno_pack. Install with deno --allow-read --allow-write https://raw.githubusercontent.com/MarkTiedemann/deno_pack/master/pack.ts.

swwind

comment created time in 13 days

create barnchMarkTiedemann/deno_pack

branch : master

created branch time in 13 days

created repositoryMarkTiedemann/deno_pack

Pack assets for distribution in Deno.

created time in 13 days

fork MarkTiedemann/deno_pkger

General resources packager for Deno

fork in 13 days

issue commentdenoland/deno

Question: install scripts with external assets

Well, I just want deno to do that stuff for me(I'm lazy). In other words, I do hope some implementation like #5987.

@swwind Would you be fine with a third-party tool doing this for you? I'm thinking about building a tool that would do this for you, i.e. in-line asset files into JS/TS source files.

swwind

comment created time in 16 days

startedaddyosmani/puppeteer-webperf

started time in 16 days

startedSchemaStore/schemastore

started time in 17 days

issue commentdenoland/deno

Plugin Op call time

Haven't run any tests yet, but here's another obversation:

performance.now() is also an op/binding that calls into native code. If ops in Deno are slower than bindings in Node, the current benchmark setup may be skewed since it's testing the performance of 3 ops/bindings rather than just 1. To check whether this has an impact, you could take the time before the loop and after to calculate the average, e.g.:

let start = performance.now();
for (let i = 0; i < sample_size; i++) {
  // call op/binding here
}
let end = performance.now();
playerx

comment created time in 17 days

issue commentdenoland/deno

Question: install scripts with external assets

As for security, I think deno install is the same as npm install -g so long as you don't install scripts from weird source.

No, deno install is a safe command whereas npm install -g with a postinstall hook can add your computer to a crypto-mining farm.

swwind

comment created time in 19 days

issue commentdenoland/deno

Question: install scripts with external assets

I just want a way to import these non-TypeScript files as ArrayBuffer

Deno.getAssetById("b"); // get Uint8Array

bundle those non-code assets into TypeScript file does not make sense to me

I don't quite understand what you're saying.

The example code I showed was meant to illustrate how you can build a TypeScript file that contains binary data. So if you have a favicon.ico file, you can build a favicon.ts file that allows access to the binary data.

I don't quite get the difference between your suggested Deno.getAssetById("favicon") and my suggested import { favicon } from "./favicon.ts". Both give you a Uint8Array (or similar).

Granted, my setup would require an additional build step on your part, but I don't feel like that's unreasonable.

swwind

comment created time in 19 days

PR opened denoland/deno

Shorten Windows file description

The Windows file properties dialog only shows 51 characters on an English system. You can scroll right to see the remaining characters but that's not obvious in this case, as it ends with "... built on V8" (and cuts off "... and Rust.")

properties

Similary, if you start your first Deno HTTP server, the firewall dialog will say " secure JavaScript/TypeScript runtime, build on V8 and Rust.", cutting off the leading "A ...", only displaying 60 characters. You can scroll to the left in this case to read the full description, but again this is not quite obvious.

firewall

Therefore, I propose to shorten the description to the nicely fitting 47 characters from the homepage: "A secure runtime for JavaScript and TypeScript."

+1 -1

0 comment

1 changed file

pr created time in 20 days

push eventMarkTiedemann/deno

Mark Tiedemann

commit sha 654ddae72209fa26a043c6bea015a902c3f148ef

Shorten Windows file description

view details

push time in 20 days

issue commentdenoland/deno

Question: install scripts with external assets

deno install is excellent for installing scripts, but it seems that it could only install ts (and js?) files through dependencies.

I'd assume that this is for security reasons. Imagine deno install putting an executable into your path.

And this solution is not suit for images(such as favicon.ico) as they are binary files.

While it may not be "suitable", you can store binary data in a TypeScript text file, for example, in a Uint8Array:

import { equal } from "https://deno.land/std@0.62.0/testing/asserts.ts";

let res = await fetch("https://deno.land/favicon.ico");
let icon_from_url = new Uint8Array(await res.arrayBuffer());
await Deno.writeTextFile("favicon.ts", `export let icon = new Uint8Array([${icon_from_url.toString()}])`);
let icon_from_file = (await import("./favicon.ts")).icon;
equal(icon_from_url, icon_from_file);

Note that this will increase file size (e.g. favicon.ico is 15kb whereas favicon.ts is 34kb).

swwind

comment created time in 20 days

issue commentdenoland/deno_install

Proposal: Rustup-like installer

@nebrelbug You mentioned dvm by @justjavac. There exist other competing Deno Version Managers, of course - all with different features, designs, and properties. Here's a quick overview of version managers that I have personally used:

There are, of course, also general-purpose package managers that allow you to manage multiple deno versions, such as, scoop, brew, choco, asdf, yay, etc.

Another personal favorite of mine is MarkTiedemann/deno.mk, which is a cross-platform Makefile for installing and running Deno in a project.


I think there's a couple of questions that are not trivial to answer:

  • Should deno upgrade and/or deno_install do version management?
    • And if so, what properties are desirable? Which designs make sense? Which features should be implemented?
  • Or should there be a new, third official tool that does version management?
    • And if so, should it replace deno upgrade and/or deno_install?

There's also a related question of creating a GUI installer for Windows which came up a couple of times in the past, most recently in this issue: https://github.com/denoland/deno/issues/5640

I think this is a surprisingly large problem space. Personally, I'm fine with the current ecosystem of solutions, but I know it could benefit from being standardized and being more beginner-friendly.


Allow setting a specific Deno version on the directory level

I'm curious. How would that be implemented?

Add Deno to the user's $PATH

On Windows this can be done by editing the HKEY_CURRENT_USER\Environment\Path registry entry. How would that be done on Linux and MacOS (other than parsing and editing (or appending to) .bashrc (or similar), which I don't think is a solid solution)?

nebrelbug

comment created time in 21 days

push eventMarkTiedemann/deno.mk

Mark Tiedemann

commit sha b24f6dc8e50c3214d8dbb9360a05985ceff26b3b

Update MacOS/Linux to 1.2.1; Use tar on all platforms

view details

push time in 21 days

push eventMarkTiedemann/deno.mk

Mark Tiedemann

commit sha 0e345962c82070a065b90bc487c4e29080c98867

Remove unnecessary cmd /c invocation on Windows

view details

push time in 21 days

push eventMarkTiedemann/deno.mk

Mark Tiedemann

commit sha f9720dab0384690351c3284ac820de6cd74796e1

Update WIndows to 1.2.1

view details

push time in 21 days

issue commentdenoland/deno

Release Builds on WinGet Pkgs

@MarkTiedemann how about creating an MSI installer for Deno?

In general, I think that's a good idea and it's definitely a fix for this issue, though, as mentioned in the comments above, I do think that WinGet should just support plain executables rather than requiring an installer, and so I'd rather have this specific issue fixed upstream.

That being said, it's, of course, still a good idea to create a GUI installer. I think the main reason for doing that would be to be more beginner friendly. As witnessed in https://github.com/denoland/deno/issues/5727, people may not expect Deno to just be an .exe in a .zip. Since setup.exe or setup.msi installers are a common pattern on Windows, I think it's fair to offer this to users.

(Another potential "fix" for that problem would be to educate people that an installer in the classical sense isn't really needed. There's an issue for that in deno_install: https://github.com/denoland/deno_install/issues/130)

I think there's also a question of scope: deno_install and deno upgrade allow you to install the latest or a specific deno version to the default or a specific location, adding that location to the %path%. So the installer should have those features at least. Both don't have an "uninstall" feature - that'd be a potential new feature. Both also don't have the role of a version manager - not sure whether that would be in-scope: Personally, I'm using MarkTiedemann/dvm.cmd to manage my deno version on Windows, axetroy/dvm to manage my deno version on MacOS, and MarkTiedemann/deno.mk for cross-platform project-local installations. So I think it'd be great if the installer was aware of previous downloads and if you could switch the deno version that you want to download/use in the setup, but that's certainly not a requirement - just my personal preference.

Then there's a couple of questions in regards to "How do you actually build the installer?". Which languages? Which tools to you use? What's the build process? Do we need to sign the installer? And if so, how do we sign it? etc.

PS: I have previously started a deno-up.exe project, but I have abandoned it since dvm is covering all of my needs.

If such a PR is issued, is there any principal reason for it to be rejected?

I don't accept nor reject PRs so that's not a question I can answer. I'd gladly help review, but ultimately that's up to @ry, @piscisaureus and @bartlomieju to decide, I guess.

ntindle

comment created time in a month

startedsfackler/rust-native-tls

started time in a month

startedgabdube/native-windows-gui

started time in a month

issue commentdenoland/deno

Windows installation path

Additionally most installers let the user specify a custom location.

That's what the DENO_INSTALL env var is for.

I'm happy to see that Deno already uses %localappdata% for working files, but why not the installer?

AFAIK, %localappdata% is for user-specific local data of an application. This is data that you can usually delete without uninstalling the application itself.

TBH, I kinda like that I can run rd /s %localappdata%\deno to clear all temporary deno data.

amur-tiger

comment created time in a month

issue commentdenoland/deno

Windows installation path

Dot-files and -folders do not have any special meaning on Windows.

Yes. How is this an issue?

This ignores Windows conventions. Programs should not put their working files directly into the user folder. A better place for installation (if installed per user profile) would be %LOCALAPPDATA%/Deno.

Deno already puts working files (\deps, \gen, deno_history.txt) into %localappdata%\deno.

$home\.deno is only used for the executable (.\bin\deno.exe).

I think $home\.deno was originally chosen for simplicity since a home directory exists on all platforms.

(Note that $home in powershell is equivalent to %userprofile% in cmd.)

AFAIK, there's no official binary directory on Windows (except maybe %systemroot%\system32, but that one requires elevation).

amur-tiger

comment created time in a month

pull request commentdenoland/deno

fix(cli): Windows: set exe file icon and PE metadata

Can you try this .ico as a final attempt before landing? https://drive.google.com/file/d/1-10fAAErCQWQ-yVTCrcIXZEbeGMjDM-w/view?usp=sharing

That one looks perfect to me, even with "Extra large icons". :)

Capture

Spoonbender

comment created time in a month

PublicEvent

issue commentdenoland/deno

False Alarm AVAST - Deno 1.2 Detected as Malware

Seems to be fixed already: https://www.virustotal.com/gui/file/eeb5fcdeda31929a6e58469e554af0a4dd7067eb7f17af0fe083630d3e5c62f6/detection

gungunfebrianza

comment created time in a month

issue commentdenoland/deno

Coloring with escape sequences doesn't work on Windows

Windows extended support != Deno support.

So Windows 8.1 is not a supported platform by Deno?

I don't know whether it's supported or not. I haven't seen any official statements about Windows support in the docs.

I'm merely pointing out that Windows has a different support lifecycle than Deno. Just because some old Windows version is still supported by Microsoft, doesn't mean Deno has to support it, too.

Also, as I have pointed out, "support" is a spectrum of various degrees. Deno can support Windows 8.1, but not support properly colored output in cmd.exe. Those are not contrary positions.

Simply disable the colour sequences on platforms which do not support it and we are good.

Deno is an open source project. Feel free to send a PR.

fzs111

comment created time in a month

issue commentdenoland/deno

Coloring with escape sequences doesn't work on Windows

it is a supported system

Windows extended support != Deno support.

Right now its output is useless.

AFAIK, deno eval -p "'Hello, world!'" works fine, even without colors. Even better, both std/fmt/colors and cli/js/colors respect NO_COLOR so set NO_COLOR=1& deno eval -p "(await import('https://deno.land/std@v0.60.0/fmt/colors.ts')).red('Hello, world!')" works just fine, too.

I agree that Deno.noColor could automatically determine that colors are not supported on older Windows builds to disable colored formatting on such systems. That's a simple, unintrusive fix. But implementing complicated Windows Console APIs for systems that are gonna be off extended support soon seems just plain unnecessary to me.

fzs111

comment created time in a month

issue commentdenoland/deno

Coloring with escape sequences doesn't work on Windows

8.1 however still is supported.

Windows 8.1 is from 2013. End of mainstream support was 2018. End of extended support is 2023. Again, I don't think it's worth it to invest too much time into supporting those older systems.

Then mark Deno as incompatible with Windows 8, respectively clearly state only Windows 10 is a supported platform, and you are good to go.

Just because colors are incorrectly displayed in some terminals, doesn't mean it's "imcompatible".

fzs111

comment created time in a month

issue commentdenoland/deno

Coloring with escape sequences doesn't work on Windows

As far as I am aware, Node does not ship with a "color this string for terminal output" function. The goto package here is chalk. chalk does not call Windows Console API functions, but uses escape sequences, too.

chalk does have detailed checks for whether colors are supported, though:

// Windows 10 build 10586 is the first Windows release that supports 256 colors.
// Windows 10 build 14931 is the first release that supports 16m/TrueColor.

https://github.com/chalk/supports-color/blob/master/index.js#L70-L71

I think the "are colors supported?" checks are a good idea and something that we can add to Deno.

Personally, I think it's not worth the trouble to implement the Windows Console APIs for color support on older systems, such as, old Windows 10 builds (we're at 19041 now, first build with color support is 10586), Windows 8.1, 8, 7, Windows Vista, XP, etc.

Recent Windows 10 builds seems like a reasonable target to me.

fzs111

comment created time in a month

issue commentdenoland/deno

Fetch seems to be fetching wrongly formatted URL when it involves redirect

Can confirm that relative locations are the problem:

// repro.ts
import { serve } from "https://deno.land/std@0.60.0/http/server.ts";

let server = serve({ port: 80 });

async function listen() {
  for await (let req of server) {
    if (req.url === "/path/computer") {
      req.respond({
        status: 301,
        headers: new Headers({
          location: Deno.args[0] === "relative" ? "Computer" : "/path/Computer",
        }),
      });
    } else {
      req.respond({ status: 200 });
    }
  }
}

listen();
await fetch("http://localhost/path/computer");
server.close();
C:\>deno run --allow-net repro.ts

C:\>deno run --allow-net repro.ts relative
error: Uncaught Http: error sending request for url (http://localhostcomputer/): error trying to connect: dns error: No such host is known. (os error 11001)
    at unwrapResponse ($deno$/ops/dispatch_json.ts:42:11)
    at Object.sendAsync ($deno$/ops/dispatch_json.ts:93:10)
    at async fetch ($deno$/web/fetch.ts:265:27)
    at async repro.ts:17:1
just-small-potato

comment created time in a month

issue commentdenoland/deno

Fetch seems to be fetching wrongly formatted URL when it involves redirect

When setting redirect to manual, Deno does not crash:

// fetch.ts
let res = await fetch("https://en.wikipedia.org/api/rest_v1/page/summary/computer", { redirect: "manual" });
console.assert(res.status === 0);
console.assert(res.type === "opaqueredirect");
C:\>deno run --allow-net fetch.ts

I noticed that Wikipedia uses relative locations in redirects.

C:\>curl -sI https://en.wikipedia.org/api/rest_v1/page/summary/computer | findstr location:
location: Computer

Perhaps Deno does not follow relative locations properly?

just-small-potato

comment created time in a month

startedPostgresApp/PostgresApp

started time in a month

pull request commentdenoland/deno

fix(cli): Windows: set exe file icon and PE metadata

I think it lacks the bigger sizes (shows small size even when displaying "Large" or "Extra Large" icons), though it could be just some issue on my machine.

Can confirm that this is an issue on my machine as well.

Capture

Spoonbender

comment created time in a month

pull request commentdenoland/deno

fix(cli): Windows: set exe file icon and PE metadata

@lucacasonato Can you export the image as an .ico file for @Spoonbender?

Spoonbender

comment created time in a month

pull request commentdenoland/deno

fix(cli): Windows: set exe file icon and PE metadata

Yeah, that is as far as my graphic skills go... maybe we can get one of the deno artists to provide an icon file that works well in light and dark themes?

According to https://deno.land/artwork, @kevinkassimo created this logo. Perhaps he can help?

Spoonbender

comment created time in a month

pull request commentdenoland/deno

fix(cli): Windows: set exe file icon and PE metadata

@Spoonbender The default language seems to be "Language Neutral". Since Deno is only available in English so far, do you think it makes sense to set the language as well?

Spoonbender

comment created time in a month

pull request commentdenoland/deno

fix(cli): Windows: set exe file icon and PE metadata

Fixed - kept it transparent on the outside and white on the inside

Nice!

Minor nitpick: Now, the border has a few white pixels on my machine:

Capture

Spoonbender

comment created time in a month

pull request commentdenoland/deno

fix(cli): Windows: set exe file icon and PE metadata

When using the Windows dark mode, the dino and the rain aren't white so the icon looks a little bit off:

Capture

Spoonbender

comment created time in a month

Pull request review commentdenoland/deno

fix(cli): Windows: set exe file icon and PE metadata

 test_util = { path = "../test_util" }  [target.'cfg(unix)'.dev-dependencies] pty = "0.2.2"++[package.metadata.winres]+# On Windows, this section defines the metadata that appears in the Deno.exe Portable Executable header
# On Windows, this section defines the metadata that appears in the deno.exe Portable Executable header
Spoonbender

comment created time in a month

Pull request review commentdenoland/deno

fix(cli): Windows: set exe file icon and PE metadata

 test_util = { path = "../test_util" }  [target.'cfg(unix)'.dev-dependencies] pty = "0.2.2"++[package.metadata.winres]+# On Windows, this section defines the metadata that appears in the Deno.exe Portable Executable header+OriginalFilename = "Deno.exe"
OriginalFilename = "deno.exe"
Spoonbender

comment created time in a month

pull request commentdenoland/deno

feat(unstable): Deno.ppid

@uki00a The current logic loops over all processes, until the process with the current process ID is found. I'm not sure how strong the snapshot guarantees are. If, for example, the current process ID is not in the snapshot, the returned parent process ID would be the one of the last process in the snapshot list. It might be safer to structure the loop as follows:

// pseudo code
parent_pid = -1
// ...
loop {
  // ...
  if entry.pid == process_pid {
     parent_pid = entry.parent_pid
     break
  }
}
return parent_pid

In this case, -1 would be returned if the current process ID is not in the snapshot. Then again, I don't know whether it's guaranteed to be in there or not.

uki00a

comment created time in a month

starteddanluu/post-mortems

started time in a month

startedLukeEmmet/GemiNaut

started time in a month

issue commentdenoland/deno

signals not blocking always

possibly there's something I am missing here

Signals currently don't block the event loop from exiting. And I think that's by design, but I don't know.

To work around this, you can, for example, add a setTimeout(() => {}, 9999999) to keep the event loop from exiting. In that case, you'll also want to add a call to Deno.exit or clearTimeout to your handler (if you want to exit based on the signal).

aricart

comment created time in a month

issue commentdenoland/deno_install

Uninstall Deno documentation

Hi @ipelekhan, by default, the installer will put deno.exe into %userprofile%\.deno\bin, e.g. C:\Users\ipelekhan\.deno\bin\deno.exe. Currently, there is no uninstall documentation (nor an uninstall script). But if you want to uninstall Deno, you can just delete that folder.

Note that Deno will also add %userprofile%\.deno\bin to your %path% variable. If you want to undo that, you'll have to adjust it as well.

Hope this helps.

ipelekhan

comment created time in a month

PR opened eon-com/eon-com.github.io

Reviewers
Add WIP contributor guide

@OlafKa @eonjs What do you guys think about adding a contributor guide?

+51 -0

0 comment

2 changed files

pr created time in a month

create barnchMarkTiedemann/eon-com.github.io

branch : add-wip-contributor-guide

created branch time in a month

issue commentelectron/rcedit

Should I use 64-bit version or 32-bit version

How do I know if I should use the 64-bit (x64) or 32-bit (x86) version of the binary?

See https://ss64.com/nt/syntax-64bit.html for "Detecting 64 bit vs 32 bit".

C:\>echo %PROCESSOR_ARCHITECTURE%
AMD64

C:\>powershell [environment]::is64bitoperatingsystem
True

C:\>powershell [environment]::is64bitprocess
True

Or does it matter as long as my OS is 64-bit?

No, it doesn't really matter. Chances are, if you don't have a 10 y/o machine, your CPU is gonna be 64-bit, and you should probably download and run the 64-bit binary. But you can also run 32-bit programs on a 64-bit CPU and OS.

JonathanMATechServices

comment created time in a month

issue commentelectron/rcedit

Bitdefender is says that rcedit.exe is a virus

The 32-bit version is still falsely flagged as a virus by two AV providers, SecureAge APEX and eGambit.

  • rcedit-x64.exe: https://www.virustotal.com/gui/file/02e8e8c5d430d8b768980f517b62d7792d690982b9ba0f7e04163cbc1a6e7915/detection
  • rcedit-x86.exe: https://www.virustotal.com/gui/file/1733e4b7e532c99b6a4ddeca1b9fff7bb1c5fd0ba7dbeb5f3520b6da03a5284f/detection

I also got flagged by bit defender with an open source project I work on: https://github.com/DigitalRuby/IPBan, not sure of a way to contact them and let them know about this, any ideas?

You can submit false positives here: https://www.bitdefender.com/submit/

mcannon77

comment created time in a month

issue commentdenoland/deno

Deno executable on Windows should have an icon

I've previously used electron/rcedit to do this. They provide a binary release here. Setting the icon is quite simple: rcedit deno.exe --set-icon deno.ico.

Here's an example of me setting the favicon.ico as the icon of deno.exe:

Capture

(Note that I have Windows in dark mode so the dino being transparent doesn't look good - it should be white.)

Jack-Works

comment created time in a month

PR opened eon-com/eon-com.github.io

Replace default page with "Coming Soon" page

Screenshot_2020-07-01 OpenSource E ON(1)

It's not much, but it's a start. :)

+40 -38

0 comment

3 changed files

pr created time in a month

create barnchMarkTiedemann/eon-com.github.io

branch : coming-soon

created branch time in a month

delete branch MarkTiedemann/eon-com.github.io

delete branch : coming-soon

delete time in a month

create barnchMarkTiedemann/eon-com.github.io

branch : coming-soon

created branch time in a month

push eventMarkTiedemann/eon-com.github.io

Mark Tiedemann

commit sha 13ba396a53306fe9490e87e4b0acdc7dbccc4c9a

Replace default page with "Coming Soon" page

view details

push time in a month

push eventMarkTiedemann/deno

Valentin Anger

commit sha db36857288609858ada259444509a31637980ce3

refactor: util functions take slices instead of heap values (#6547)

view details

Andrey Filatkin

commit sha a690a206790778cf63df876fdeefebc17607e5c8

fix(cli/upgrade): upgrade fails on Windows with space in temp path (#6522)

view details

Casper Beyer

commit sha 06f34a1aed2541866f32438d7bbc75e35c1d5dc3

feat(std/wasi) implement fd_filestat_get (#6555)

view details

Oron Sharabi

commit sha 53f8d96a1faf3b0f97e793b2e4ea86c64c12cbfa

fix(std/http): Support ipv6 parsing (#5263)

view details

Casper Beyer

commit sha 4cde7fdc9a52088f8dfe3e23569d6be2faa80d0f

feat(std/wasi): implement fd_datasync (#6556)

view details

Casper Beyer

commit sha 3c5459d849502963ee44efc7c3137db6e9fc63b2

feat(std/wasi) implement fd_filestat_set_size (#6558)

view details

Ryan Dahl

commit sha f5242f333ec8ba3c1f4bea88a5b4c55bb14dbfb7

fix(std/node): do not use absolute urls (#6562)

view details

Ryan Dahl

commit sha a19d6a2613b65771748cee97c620c04a62e8a6e4

ignore PoisonError in test_server (#6567)

view details

Casper Beyer

commit sha cb16439e85ed4f5de7b7017e1a994780ff670e37

feat(std/wasi): implement fd_sync (#6560)

view details

Casper Beyer

commit sha 9b749945bbb8c86ef1fcad9603bd7a84f27bdd8f

test(std/wasi): add hard-link test (#6571)

view details

Casper Beyer

commit sha 971dfcf9bbf469b4d21f4a614d3f825528d748f5

test(std/wasi): add rename test (#6573)

view details

Water Zheng

commit sha 6844c3ac0ea4afcb799bba4945b400a011eb5d84

fix(std/log): print "{msg}" when log an empty line (#6381)

view details

Kitson Kelly

commit sha 062d1a41ea6ab22bab36e54d1f1222fc09351bf3

refactor: Improvements to TsCompiler and its tests (#6576)

view details

Kitson Kelly

commit sha 7858ebd493afe15b4b583b0218c27e166572b280

Update std/http/cookie types to not require full ServerRequest object (#6577)

view details

push time in a month

issue commentdenoland/deno_install

Use curl instead of iwr on Windows

Closing in favor of #154.

MarkTiedemann

comment created time in a month

issue closeddenoland/deno_install

Use curl instead of iwr on Windows

Since early 2018, curl is available as %SystemRoot%\System32\curl.exe on Windows (see: https://devblogs.microsoft.com/commandline/tar-and-curl-come-to-windows/). So instead of Invoke-WebRequest we could use curl some day in the future, once we decide to no longer support older Windows versions.

This would allow us to harmonize the output of the Shell and the PowerShell installer.

On a side note, this may allow us to drop the requirement of powershell.exe in favor of cmd.exe: The main reason that powershell.exe is used for our Windows installer rather than cmd is that cmd has no built-in utilities for making HTTP requests and no utilities for extracting archives (though, similar to curl.exe, tar.exe is a built-in utility on Windows now, too).

On yet another note, curl is a few seconds faster for downloading the deno.zip compared to iwr from my limited testing.

closed time in a month

MarkTiedemann

issue openeddenoland/deno_install

Add cmd.exe installer script

Why?

  • Because cmd.exe is still the default Windows command prompt which, arguably, makes it more user-friendly to run the installer in cmd.exe rather than powershell.exe.
  • More choices for our users: Some people dislike cmd, some dislike powershell. By providing both, more people are gonna be happy, potentially.
  • Because we can. :)

How?

In order to do this, the .cmd installer would have to have the same capabilities as the .ps1 installer. Some of these are:

  • Download files via Invoke-WebRequest
  • Extract a .zip archive via Expand-Archive or [System.IO.Compression.ZipFile]::ExtractToDirectory
  • Add to the session's %Path% via $Env:Path and to the user's %Path% via [System.Environment]::SetEnvironmentVariable

As brought up in https://github.com/denoland/deno_install/issues/153, since early 2018, curl and tar are available on Windows 10 by default. Thus, on a modern Windows 10 installation, curl could be used to download files and tar could be used to extract a .zip file.

Here's a short example:

@echo off
rem Determine latest Deno version
for /f "delims=/ tokens=6" %%v in ('"curl -s https://github.com/denoland/deno/releases | findstr \/denoland/deno/releases/download/.*/deno-x86_64-pc-windows-msvc.zip | findstr /n . | findstr ^1:"') do (
    rem Download latest Deno .zip file
    curl -Lo deno.zip https://github.com/denoland/deno/releases/download/%%v/deno-x86_64-pc-windows-msvc.zip
    rem Extract .zip file
    tar xf deno.zip
)

Manipulating the session %Path% can be done via set Path=... (or path). Manipulating the users's %Path% can be done using reg, reading and writing to the Path value of the HKEY_CURRENT_USER\Environment registry path.

Note that I'm not suggesting to drop the PowerShell installer, I'm simply suggesting that we could add an additional Command Prompt installer.

created time in a month

push eventMarkTiedemann/deno.mk

Mark Tiedemann

commit sha 8403e1447004897d65b284c8a730ff0f2b47d843

Use tar on Windows rather than the Expand-Archive powershell cmdlet for extracting the .zip file

view details

push time in 2 months

release MarkTiedemann/dvm.cmd

0.7

dvm.cmd 5.01KB

released time in 2 months

push eventMarkTiedemann/dvm.cmd

Mark Tiedemann

commit sha bf91bfdcf6c7c018e81fa4415946954d533aefcd

Use tar instead of the Expand-Archive powershell cmdlet to extract .zip file

view details

push time in 2 months

created tagMarkTiedemann/dvm.cmd

tag0.7

Deno Version Manager for Windows.

created time in 2 months

issue commentdenoland/deno_install

Use curl instead of iwr on Windows

Download and extract latest Deno version in one line of batch:

C:\>for /f "delims=/ tokens=6" %v in ('"curl -s https://github.com/denoland/deno/releases | findstr \/denoland/deno/releases/download/.*/deno-x86_64-pc-windows-msvc.zip | findstr /n . | findstr ^1:"') do @curl -Lo deno.zip https://github.com/denoland/deno/releases/download/%v/deno-x86_64-pc-windows-msvc.zip& @tar xf deno.zip& @.\deno -V deno 1.1.2

MarkTiedemann

comment created time in 2 months

issue closeddenoland/deno

Provide .exe and .tar releases

ref: https://github.com/denoland/deno_install/issues/130

As witnessed in denoland/deno#5727 and #129, people may not expect Deno to just be an .exe in a .zip.

ref: https://github.com/denoland/deno_install/issues/153

tar is installed by default on Windows 10 since early 2018. unzip is not installed by default. Instead, unzipping requires using PowerShell cmdlets or Windows Script Host shenanigans. Providing a .tar.gz release would allow custom installations to just curl and untar a Deno release. (Extracting .tar.xz doesn't work on Windows. Only .tar.gz is supported.)

Not sure about Mac and Linux, but I'd guess that tar is more common on those platforms than zip.

Note that I'm not saying that we should get rid of .zip releases. I'm suggesting to provide binary and .tar releases in addition to the .zip releases.

closed time in 2 months

MarkTiedemann

issue commentdenoland/deno

Provide .exe and .tar releases

Just learned that tar on Windows supports extracting .zip files out of the box.

C:\dev>curl -LO https://github.com/denoland/deno/releases/download/v1.1.2/deno-x86_64-pc-windows-msvc.zip
C:\dev>tar xf deno-x86_64-pc-windows-msvc.zip
C:\dev>.\deno -V
deno 1.1.2

This removes the paint point of unzip not being available.

MarkTiedemann

comment created time in 2 months

startedlibarchive/libarchive

started time in 2 months

push eventMarkTiedemann/todo

Mark Tiedemann

commit sha d09bedf8e08ff7c3d45bb1c8808794024578e5fb

Remove extraneous spaces

view details

push time in 2 months

pull request commentdenoland/deno

feat(unstable): Deno.ppid

Then again, if I look at the process.ppid docs from Node https://nodejs.org/dist/latest-v14.x/docs/api/process.html#process_process_ppid, there is no such warning. So maybe we don't need to bother?

uki00a

comment created time in 2 months

pull request commentdenoland/deno

feat(unstable): Deno.ppid

NOTE: Don't assume that the process identified by this id is always the same. That process may be dead, or that id may be reused by another process.

How about:

It is not safe to assume that Deno.ppid always refers to the pid of the parent process. If the parent process has exited already, its pid may be reused by another process.

uki00a

comment created time in 2 months

push eventMarkTiedemann/deno.mk

Mark Tiedemann

commit sha 3f56714a854022da7ad2aa768e2bc08d2c5583d8

Update Readme

view details

push time in 2 months

push eventMarkTiedemann/deno.mk

Mark Tiedemann

commit sha c2032f445e7c05ad9895dc92c8d939106f35577c

Update MacOS/Linux to 1.1.2

view details

push time in 2 months

push eventMarkTiedemann/deno.mk

Mark Tiedemann

commit sha 5a101f13d1bec4015ea3b29ece4a7d6c1e18d03a

Update Windows to 1.1.2

view details

Mark Tiedemann

commit sha d1a9b399ae42de3663cc4759fb1d4b5fa5fa05a0

Merge branch 'master' of https://github.com/marktiedemann/deno.mk

view details

push time in 2 months

pull request commentdenoland/deno

feat(unstable): Deno.ppid

Maybe return -1 if it still fails? That's what Node is doing: https://github.com/nodejs/node/blob/3abb52fdb683c9c9ade1b2c7d16d0f640bbaacfd/deps/uv/src/win/util.c#L361

uki00a

comment created time in 2 months

pull request commentdenoland/deno

feat(unstable): Deno.ppid

Just ran a quick test:

// parent.cpp
#include <windows.h>
#include <fstream>
#include <iostream>

int main() {
	DWORD pid = GetCurrentProcessId();
	std::ofstream fs("log.txt");
	fs << "parent.pid:\t" << pid << '\n';
	fs.close();
	STARTUPINFO si;
	si.cb = sizeof(si);
	PROCESS_INFORMATION pi;
	CreateProcess("child.exe", NULL, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi);
	CloseHandle(pi.hProcess);
	CloseHandle(pi.hThread);
	return 0;
}
// child.cpp
#include <windows.h>
#include <tlhelp32.h>
#include <fstream>
#include <iostream>

int main() {
	Sleep(10000);
	HANDLE snap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
	PROCESSENTRY32 entry;
	entry.dwSize = sizeof(PROCESSENTRY32);
	Process32First(snap, &entry);
	DWORD pid = GetCurrentProcessId();
	std::ofstream fs;
	fs.open("log.txt", std::ios::app);
	do {
		if (pid == entry.th32ProcessID) {
			fs << "child.pid:\t" << pid << "\nchild.ppid:\t" << entry.th32ParentProcessID << '\n';
			fs.close();
			CloseHandle(snap);
			return 0;
		}
	} while (Process32Next(snap, &entry));
	fs << "child.pid:\t" << pid << "\nchild.ppid:\tN/A" << '\n';
	fs.close();
	CloseHandle(snap);
	return 1;
}
:: test.cmd
@echo off
cl child.cpp 
cl parent.cpp
parent.exe
timeout 11
type log.txt
C:\>test
:: <removed compiler log>
parent.pid:     6244
child.pid:      13200
child.ppid:     6244

So even if the parent is already dead for 10 seconds, the snapshot still returns the correct parent process ID.

So yeah, I think we should document that the parent may be dead and that the parent ID may be reused (and perhaps even that the parent ID may be incorrect because it was spoofed), but I think it's fine to use number and assume that there will always be a parent ID.

uki00a

comment created time in 2 months

pull request commentdenoland/deno

feat(unstable): Deno.ppid

Hmm, after thinking about it again, I think I've never seen the snapshot not returning a parent ID for a process entry. I think it may be spoofed (https://blog.f-secure.com/detecting-parent-pid-spoofing/) and it may be incorrect (e.g. parent process has exited, new process has taken its ID), but it should always return a parent process ID.

I have some spare time today so I'll write some C++ code to test what happens if the parent process has exited early.

According to the article linked above, parent process ID spoofing protection requires reading the Windows Event Traces, which I think is out of scope for Deno to detect anyways.

To prevent returning a re-used ID, we could check whether the start time of the parent process is before the start time of the Deno process. But I think this may be out of scope, too.

uki00a

comment created time in 2 months

pull request commentdenoland/deno

feat(unstable): Deno.ppid

perhaps throw an Error if there was an issue determining the ppid?

Might be best to only throw the error if Deno.ppid is actually accessed. Otherwise, if your script doesn't need the ppid anyways, it would be bad if it failed because the parent has exited too quickly and the ppid could not be determined.

Not sure. Maybe number | null is fine, too. But in any case, the docs should clearly state why it's possible to be null.

uki00a

comment created time in 2 months

pull request commentdenoland/deno

feat(unstable): Deno.ppid

Deno.ppid is still number | null.

Are you keeping the null because CreateToolhelp32Snapshot, Process32First or Process32Next might fail? From my experience, developing fastlist, which is included in ps-list, which is downloaded 400k times per week, these APIs don't fail. There has not been a single bug report ever for any of those failing.

AFAIK, Process32First and Process32Next fail if you provide the wrong flags to CreateToolhelp32Snapshot (e.g. you take a module snapshot instead of a process snapshot) or if you forget to set the dwSize of the PROCESSENTRY32.

For CreateToolhelp32Snapshot, the docs state that "When taking snapshots that include heaps and modules for a process other than the current process, the CreateToolhelp32Snapshot function can fail or return incorrect information for a variety of reasons." Note that there is no mention of process snapshots being able to fail.

I think null is fine for the race condition case where the parent has exited before the ppid has been determined.

It might be nicer to say it's a number so people don't have to use ! whenever they use it, and perhaps throw an Error if there was an issue determining the ppid?

uki00a

comment created time in 2 months

pull request commentdenoland/deno

feat(unstable): Deno.ppid

@uki00a Just tested on my Windows machine.

:: Get pid of current command prompt
C:\dev\deno>powershell (Get-WmiObject Win32_Process -Filter ProcessId=$Pid).ParentProcessId
7228

C:\dev\deno>.\target\debug\deno.exe eval --unstable -p [Deno.pid,Deno.ppid]
[ 2596, 7228 ]

Seems to work just fine. :)

uki00a

comment created time in 2 months

push eventMarkTiedemann/deno

Bert Belder

commit sha ee7727cd078b56d2ecc5d93f9308709e60a18949

To find home dir, use only $USERPROFILE on Windows, $HOME on Posix (#6132) $HOME is meaningless on Windows. It may be set by users or by third party software, but it is non-standard and should not be relied upon. Likewise, $USERPROFILE is meaningless on other platforms.

view details

Bert Belder

commit sha 18670c47e69ec2b9ceef6ec0011fbbdc4b845be6

fix: 'deno upgrade' doesn't work on Windows 8.1/PowerShell 4.0 (#6132) Fixes: #6109

view details

Taisuke Fukuno

commit sha d2243b1125722e775b1f9719197260d1cda1220d

deno test should run mjs files (#6122)

view details

Ryan Dahl

commit sha 79d9cf52d0298ba85e0ac4a58014116bb84bfc59

fix(core): ES module snapshots (#6111) Co-authored-by: Bert Belder <bertbelder@gmail.com>

view details

Taisuke Fukuno

commit sha 93175b7a79e09381ea556539f10cde9eaa61af89

added mjs files for default fmt (#6134)

view details

Chris Knight

commit sha c137b11abfb946ef72a5fcb27e11e0b286a33be3

fix: revert setInterval log flushing as it prevents process completion (#6127)

view details

Casper Beyer

commit sha ed5aedc6b4a1d72208649afd8793e288d94021b1

Rename abbreviated assertions in std/testing (#6118)

view details

Deepak Vishwakarma

commit sha ee192b075819ccc3a6e3dfbf0eab36fd090fced4

added documentation with sample for std/io mod (#6106)

view details

Mark Tiedemann

commit sha 2093ee55d4c728448a3db373dd416b6eea845c14

Chunk prettier invocation (#6129) This avoids failures due to exceeding the maximum command line length. Fixes: #5017

view details

Ryan Dahl

commit sha 8a4533eb75ff505f8aa16c206af1ca13f0e6c166

feat: deno eval -p (#5682)

view details

Filippo Rossi

commit sha 78333f0ab3614e8dbd3dfdc95e9dbb53f80ffe5d

Add diff for "deno fmt --check" (#5599)

view details

Ryan Dahl

commit sha 1a2f88609b3e1bc27790c77331ac96b423625eb6

fix(std/io): StringReader implementation (#6148)

view details

Akshat Agarwal

commit sha 1e709387e4a24d844302531705f9bbc14b8c3199

Add "fork" method on DenoPermissions, PermissionState (#5693)

view details

Deepak Vishwakarma

commit sha f93180550276bf727f2ce8244eaa5beaa75d7ee8

readme for std/hash (#6139)

view details

Ryan Dahl

commit sha fbf075997c466a50eeaa0e3323bbcdd8be75e454

Increase visibly of CoC (#6152)

view details

Marcos Casagrande

commit sha 26287ef87b2b238e25a1ab44a43cde24eea15bfc

fix: use queueMicrotask instead of setTimeout (#6112)

view details

Nikolai Vavilov

commit sha 09ee9a828009ab1fbe59f611da64f48f9e9e573b

feat(std/node): Buffer (#5925)

view details

hork71

commit sha 6155ec231777feb59ce27b5e8689c4f317895d0d

docs: vim/neovim settings for editors (#6064)

view details

Tim Reichen

commit sha adffbacfe49aac480fc34e78035200ab9602443c

refactor(std/http): rename delCookie to deleteCookie (#6088)

view details

Chris Knight

commit sha 3ef94c5473ac77366d009c7a7c665f695670f886

refactor(std): remove testing dependencies from non-test code (#5838)

view details

push time in 2 months

Pull request review commentdenoland/deno

feat(unstable): Deno.ppid

 fn op_metrics(     "bytesReceived": m.bytes_received   }))) }++fn ppid() -> Value {+  #[cfg(unix)]+  {+    use std::os::unix::process::parent_id;+    serde_json::to_value(parent_id()).unwrap()+  }+  #[cfg(not(unix))]+  {+    ppid_win()+  }

@uki00a Yep, that's exactly what I meant. :)

uki00a

comment created time in 2 months

Pull request review commentdenoland/deno

feat(unstable): Deno.ppid

 fn op_metrics(     "bytesReceived": m.bytes_received   }))) }++fn ppid() -> Value {+  #[cfg(unix)]+  {+    use std::os::unix::process::parent_id;+    serde_json::to_value(parent_id()).unwrap()+  }+  #[cfg(not(unix))]+  {+    ppid_win()+  }

Shouldn't the config be the other way around? e.g. use Unix by default, have Windows be the special case.

uki00a

comment created time in 2 months

pull request commentdenoland/deno

feat(unstable): Deno.ppid

@uki00a You could add a test similar to this:

assertEquals(Deno.pid, parseInt(new TextDecoder().decode(await Deno.run({ cmd: ["deno", "eval", "-p", "--unstable", "Deno.ppid"], stdout: "piped" }).output())));

Also I can test it on my Windows machine tomorrow. :)

uki00a

comment created time in 2 months

release MarkTiedemann/dvm.cmd

0.6

dvm.cmd 5.08KB

released time in 2 months

created tagMarkTiedemann/dvm.cmd

tag0.6

Deno Version Manager for Windows.

created time in 2 months

push eventMarkTiedemann/dvm.cmd

Mark Tiedemann

commit sha 90c0c5d21166473fdcb6946198ebfbfd88b8fb92

Fix check-update-self command output

view details

push time in 2 months

release MarkTiedemann/dvm.cmd

0.5

dvm.cmd 5.08KB

released time in 2 months

push eventMarkTiedemann/dvm.cmd

Mark Tiedemann

commit sha 351776eadbfbe7718a5b765d88e1458c0cc245de

Remove documentation for unimplemented uninstall command

view details

push time in 2 months

created tagMarkTiedemann/dvm.cmd

tag0.5

Deno Version Manager for Windows.

created time in 2 months

more