the-benchmarker / web-frameworks

Which is the fastest web framework?
MIT License
6.91k stars 642 forks source link

Multiple engines #3958

Closed waghanza closed 1 year ago

waghanza commented 3 years ago

Hi,

This PR allows to test each frameworks on various setups.

Actual

All frameworks are tested once. For example, ruby framework are tested with puma (since widely spread in ruby communities)

Purpose

Test framework with multiple engines (for the sake of this feature we keep focus on engines, not compilation options, vms, ...). The idea the is to test frameworks with various engines, when accurate indeed.


List of engines


waghanza commented 1 year ago

yes, but not sure however

# Package

version = "0.1.0"
author = "bung87"
description = "scorper implementation"
license = "MIT"

# Dependencies

requires "nim >= 1.3.1"
requires "scorper >= 1.1 & < 1.2"

include this patch

how can I use latest chronos master ?

bung87 commented 1 year ago

requires "chronos#head" or nimble install chronos@#head

waghanza commented 1 year ago

same issue with

# Package

version = "0.1.0"
author = "bung87"
description = "scorper implementation"
license = "MIT"

# Dependencies

requires "nim >= 1.3.1"
requires "scorper#develop"
requires  "chronos#head"

maybe a bump is required, either on scorper or chronos side @bung87

bung87 commented 1 year ago

published v1.1.2 with dependency requires "chronos", please try again!

waghanza commented 1 year ago

same @bung87

bung87 commented 1 year ago

pretty weird , the CI shows Installing scorper@1.1.1 :(

bung87 commented 1 year ago

hard to track the issue for now , I think simply put server.nim.cfg with --threads:on like other frameworks will do the trigger.

waghanza commented 1 year ago

on my side I have

Installing scorper@>= 1.1 & < 1.2
Downloading https://github.com/bung87/scorper using git
  Verifying dependencies for scorper@1.1.2
 Installing chronos@any version
Downloading https://github.com/status-im/nim-chronos using git
  Verifying dependencies for chronos@3.1.0

but still

Step 8/14 : RUN nim c      --excessiveStackTrace:off     -d:release     --opt:speed     --passC:-flto     --passL:-flto     server.nim
 ---> Running in 32b37e6f3bfb
Hint: used config file '/nim/config/nim.cfg' [Conf]
Hint: used config file '/nim/config/config.nims' [Conf]
...........................................................................................................
/root/.nimble/pkgs/chronos-3.1.0/chronos/selectors2.nim(298, 12) Error: undeclared identifier: 'sigprocmask'
candidates (edit distance, scope distance); see '--spellSuggest':
 (6, 6): 'EINPROGRESS' [const declared in /root/.nimble/pkgs/chronos-3.1.0/chronos/oserrno.nim(1274, 5)]
 (6, 6): 'EINPROGRESS' [const declared in /root/.nimble/pkgs/chronos-3.1.0/chronos/oserrno.nim(1274, 5)]
 (6, 6): 'EINPROGRESS' [const declared in /root/.nimble/pkgs/chronos-3.1.0/chronos/oserrno.nim(1274, 5)]
 (6, 6): 'SIG_BLOCK' [const declared in /nim/lib/posix/posix_linux_amd64_consts.nim(403, 7)]
 (6, 6): 'SIG_BLOCK' [const declared in /nim/lib/posix/posix_linux_amd64_consts.nim(403, 7)]
 (6, 6): 'procCall' [proc declared in /nim/lib/system.nim(2965, 6)]
waghanza commented 1 year ago

Seems that not all nim frameworks use --threads:on.

Maybe using a compilation option instead of a file could be 👍🏻