ianfhunter / GNOLL

GNOLL is an efficient dice notation parser for multiple programming languages that supports a wide set of dice notation
https://www.ianhunter.ie/GNOLL/
GNU General Public License v3.0
38 stars 22 forks source link

Understand if GNOLL supports TTRPGs marked 'likely' #211

Open ianfhunter opened 1 year ago

ianfhunter commented 1 year ago

Is your feature request related to a problem? Please describe.

https://www.ianhunter.ie/GNOLL/etc/supported_rpgs.html shows GNOLLs support over a range of TTRPGs. However, we were not able to find the full rules in all cases. This task is to look at our list and find out if any of the items marked 'Likely' can be promoted to 'Supported'

Describe the solution you'd like

Open a PR changing the icon and adding a reference/link to the rules where the system's dice mechanics are explained.

Describe alternatives you've considered

Additional context

CodeWAdi commented 1 year ago

hey there can you explain me what do I have to do to check weather the items marked as likely can be promoted to supported

ianfhunter commented 1 year ago

On this page There is a big list of RPG systems. The ones with a "🔼" symbol are "likely supported by GNOLL". However, we were not able to know for certain because we did not have the full rules.

In order to change an entry from a 🔼 to a ✔️ we need to understand what type of dice rolling is used in the game.

Bonus: Add a unit test in tests/python/systems for the game

oliviacarino commented 1 year ago

Hey, can I pick this up? :)

ianfhunter commented 1 year ago

Hey, can I pick this up? :)

Certainly! There's lots to do on this one

oliviacarino commented 1 year ago

@ianfhunter I installed GNOLL using pip3 install GNOLL, used the following 2 lines:

from gnoll.parser import roll
roll("1d20")

and this error occurred when I executed it:

olivia:~/Dropbox/Coding/Hacktoberfest2022/gnoll-stuff$ python3 test.py
ERROR in cling::CIFactory::createCI(): cannot extract standard library include paths!
Invoking:
  LC_ALL=C /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++    -xc++ -E -v /dev/null 2>&1 | sed -n -e '/^.*include/,${' -e '/^ \/.*++/p' -e '}'
Results was:
With exit code 0
Warning: sysroot "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk" not found (ignoring for now).input_line_1:1:10: fatal error: 'new' file not found
#include <new>
         ^~~~~
Warning in cling::IncrementalParser::CheckABICompatibility():
  Failed to extract C++ standard library version.
In file included from input_line_3:1:
In file included from ./include/RtypesCore.h:23:
/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/cppyy_backend/etc//cling/lib/clang/9.0.1/include/stddef.h:35:9: error: unknown type name '__PTRDIFF_TYPE__'
typedef __PTRDIFF_TYPE__ ptrdiff_t;
        ^
/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/cppyy_backend/etc//cling/lib/clang/9.0.1/include/stddef.h:46:9: error: unknown type name '__SIZE_TYPE__'
typedef __SIZE_TYPE__ size_t;
        ^
/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/cppyy_backend/etc//cling/lib/clang/9.0.1/include/stddef.h:74:9: error: unknown type name '__WCHAR_TYPE__'
typedef __WCHAR_TYPE__ wchar_t;
        ^
input_line_3:2:10: fatal error: 'string' file not found
#include <string>
         ^~~~~~~~
0  libCling.so              0x000000010a8086c5 llvm::sys::PrintStackTrace(llvm::raw_ostream&) + 37
1  libCling.so              0x000000010a807947 llvm::sys::RunSignalHandlers() + 39
2  libCling.so              0x000000010a808c62 SignalHandler(int) + 258
3  libsystem_platform.dylib 0x00007fff204e0d7d _sigtramp + 29
4  libsystem_platform.dylib 0x00007ff49df10198 _sigtramp + 18446744028572742712
5  libCling.so              0x00000001082156a8 CppyyLegacy::TMetaUtils::TNormalizedCtxt::TNormalizedCtxt(cling::LookupHelper const&) + 40
6  libCling.so              0x00000001082cf32f CppyyLegacy::TCling::TCling(char const*, char const*, char const* const*) + 12607
7  libCling.so              0x00000001082c7f45 CreateInterpreter + 53
8  libCoreLegacy.so         0x000000010b908826 CppyyLegacy::TROOT::InitInterpreter() + 214
9  libCoreLegacy.so         0x000000010b908702 CppyyLegacy::Internal::GetROOT2() + 34
10 libCling.so              0x00000001082ab99d TCling__GetInterpreter + 61
11 libCling.so              0x0000000108274497 RootClingMain(int, char**, bool) + 18887
12 libCling.so              0x0000000108284644 ROOT_rootcling_Driver + 340
13 rootcling                0x0000000107e80f5e main + 142
14 libdyld.dylib            0x00007fff204b6f3d start + 1
Stack dump:
0.  Program arguments: ./bin/rootcling -rootbuild -generate-pch -f /var/folders/5g/zx4jsxj11zgbw_lq_156xzl00000gn/T/allDict.cxx -noDictSelection -D__CLING__ -DROOT_PCH -I./include -I./etc -I./etc/dictpch -I./etc/cling -I/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/cppyy_backend/include -cxxflags -std=c++17 -m64 -pipe -fsigned-char -fno-common -Qunused-arguments -pthread -stdlib=libc++ etc/dictpch/allHeaders.h etc/dictpch/allLinkDefs.h 
/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/cppyy_backend/loader.py:139: UserWarning: No precompiled header available (failed to build); this may impact performance.
  warnings.warn('No precompiled header available (%s); this may impact performance.' % msg)
ERROR in cling::CIFactory::createCI(): cannot extract standard library include paths!
Invoking:
  LC_ALL=C /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++    -xc++ -E -v /dev/null 2>&1 | sed -n -e '/^.*include/,${' -e '/^ \/.*++/p' -e '}'
Results was:
With exit code 0
Warning: sysroot "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk" not found (ignoring for now).input_line_1:1:10: fatal error: 'new' file not found
#include <new>
         ^~~~~
Warning in cling::IncrementalParser::CheckABICompatibility():
  Failed to extract C++ standard library version.
Replaced symbol atexit cannot be found in JIT!
Replaced symbol at_quick_exit cannot be found in JIT!
In file included from input_line_3:1:
In file included from /Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/cppyy_backend/include/Rtypes.h:22:
In file included from /Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/cppyy_backend/include/RtypesCore.h:23:
/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/cppyy_backend/etc//cling/lib/clang/9.0.1/include/stddef.h:35:9: error: unknown type name '__PTRDIFF_TYPE__'
typedef __PTRDIFF_TYPE__ ptrdiff_t;
        ^
/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/cppyy_backend/etc//cling/lib/clang/9.0.1/include/stddef.h:46:9: error: unknown type name '__SIZE_TYPE__'
typedef __SIZE_TYPE__ size_t;
        ^
/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/cppyy_backend/etc//cling/lib/clang/9.0.1/include/stddef.h:74:9: error: unknown type name '__WCHAR_TYPE__'
typedef __WCHAR_TYPE__ wchar_t;
        ^
In file included from input_line_3:1:
In file included from /Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/cppyy_backend/include/Rtypes.h:25:
/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/cppyy_backend/include/snprintf.h:14:10: fatal error: 'stdio.h' file not found
#include <stdio.h>
         ^~~~~~~~~
File Edit Options Buffers Tools Text Help                                                                                               
97  [/Library/Frameworks/Python.framework/Versions/3.10/Python] _PyEval_Vector (no debug info)
98  [/Library/Frameworks/Python.framework/Versions/3.10/Python] call_function (no debug info)
99  [/Library/Frameworks/Python.framework/Versions/3.10/Python] _PyEval_EvalFrameDefault (no debug info)
100 [/Library/Frameworks/Python.framework/Versions/3.10/Python] _PyEval_Vector (no debug info)
101 [/Library/Frameworks/Python.framework/Versions/3.10/Python] call_function (no debug info)
102 [/Library/Frameworks/Python.framework/Versions/3.10/Python] _PyEval_EvalFrameDefault (no debug info)
103 [/Library/Frameworks/Python.framework/Versions/3.10/Python] _PyEval_Vector (no debug info)
104 [/Library/Frameworks/Python.framework/Versions/3.10/Python] call_function (no debug info)
105 [/Library/Frameworks/Python.framework/Versions/3.10/Python] _PyEval_EvalFrameDefault (no debug info)
106 [/Library/Frameworks/Python.framework/Versions/3.10/Python] _PyEval_Vector (no debug info)
107 [/Library/Frameworks/Python.framework/Versions/3.10/Python] object_vacall (no debug info)
108 [/Library/Frameworks/Python.framework/Versions/3.10/Python] _PyObject_CallMethodIdObjArgs (no debug info)
109 [/Library/Frameworks/Python.framework/Versions/3.10/Python] PyImport_ImportModuleLevelObject (no debug info)
110 [/Library/Frameworks/Python.framework/Versions/3.10/Python] _PyEval_EvalFrameDefault (no debug info)
111 [/Library/Frameworks/Python.framework/Versions/3.10/Python] _PyEval_Vector (no debug info)
112 [/Library/Frameworks/Python.framework/Versions/3.10/Python] pyrun_file (no debug info)
113 [/Library/Frameworks/Python.framework/Versions/3.10/Python] _PyRun_SimpleFileObject (no debug info)
114 [/Library/Frameworks/Python.framework/Versions/3.10/Python] _PyRun_AnyFileObject (no debug info)
115 [/Library/Frameworks/Python.framework/Versions/3.10/Python] pymain_run_file_obj (no debug info)
116 [/Library/Frameworks/Python.framework/Versions/3.10/Python] pymain_run_file (no debug info)
117 [/Library/Frameworks/Python.framework/Versions/3.10/Python] pymain_run_python (no debug info)
118 [/Library/Frameworks/Python.framework/Versions/3.10/Python] Py_RunMain (no debug info)
119 [/Library/Frameworks/Python.framework/Versions/3.10/Python] pymain_main (no debug info)
120 [/Library/Frameworks/Python.framework/Versions/3.10/Python] Py_BytesMain (no debug info)
121 [/usr/lib/system/libdyld.dylib] start (no debug info)
122 [<unknown binary>] (no debug info)

Do you know why this is happening?

ianfhunter commented 1 year ago

@ianfhunter I installed GNOLL using pip3 install GNOLL, used the following 2 lines: .... Do you know why this is happening?

It looks like you are using a Mac. I have only tested GNOLL on Windows and Linux (I don't own a Mac). I will try to investigate though!

Another library with this issue suggested that you run xcode-select --install before installing

(https://root-forum.cern.ch/t/cannot-extract-standard-library-include-paths/27494/6)

oliviacarino commented 1 year ago

Ah, no worries! I have a windows machine as well and will run it on there :)

I'll try running that command as well on my mac and see how it goes!

oliviacarino commented 1 year ago

I tried running it on my Windows machine and the module fcntl is not supported on Windows, so I can't install GNOLL :(

oliviacarino commented 1 year ago

I'm going to do the best I can and research some of the TTRPGs that haven't been evaluated yet. I'll add the appropriate emoji symbol based on what I find! I hope this can count towards a valid PR!

oliviacarino commented 1 year ago

@ianfhunter created a PR here! https://github.com/ianfhunter/GNOLL/pull/353 Updated the Adventurer's Guild

oliviacarino commented 1 year ago

@ianfhunter Hey! Is it okay to merge this PR, yet? Just checking since tomorrow is the last day of hacktoberfest!