github.com/Nephos/Hackware
master / published Jul 18, 2018 / repository
WIP A wonderful hacking-game : https://git.sceptique.eu/Hackware/Hackware
Documentation could not be built
Build failed
The documentation build for this version ran and did not produce anything usable. That is usually a shard that does not compile against the Crystal version it declared.
What the builder reported
docs-build: crystal docs exited 62
crystal docs said:
no-egress: verified in-process as uid 1000, ip and vsock sockets denied, io_uring denied, no_new_privs set
Crystal built without LibXML2 support, HTML sanitization will be skipped
There was a problem expanding macro 'extends'
Called macro defined in lib/RuntimeCall/src/RuntimeCall.cr:92:3
92 | macro extends(&block)
Which expanded to:
> 1 | extend RuntimeCall
2 | begin
3 | getter_runtime_call("owner")
4 |
5 | define_runtime_call("is_attached_to", String) do |args|
6 | @machine_name == args[0]
7 | end
8 | end
9 | finish_runtime_call
10 |
Warning: expanding macro
There was a problem expanding macro 'extended'
Called macro defined in lib/RuntimeCall/src/RuntimeCall.cr:10:3
10 | macro extended
Which expanded to:
1 | alias RuntimeCallArg = String
2 | alias RuntimeCallArgsContainer = Array
3 | alias RuntimeCallArgs = RuntimeCallArgsContainer(RuntimeCallArg)
4 |
5 | RUNTIME_FUNCTIONS__ = [] of String
6 |
7 | # Reads into the list of operators functions to call the right one.
8 | def runtime_call(call : String, values : RuntimeCallArgs)
9 | call_proc = RUNTIME_CALLS__[call]?
10 | raise RuntimeCall::UndefinedCall.new %(No runtime call "#{call}" in (#{self.class})) if call_proc.nil?
11 | call_proc.call(self, values)
12 | end
13 |
14 | def runtime_call(call : String, *values)
15 | call_proc = RUNTIME_CALLS__[call]?
16 | raise RuntimeCall::UndefinedCall.new %(No runtime call "#{call}" in (#{self.class})) if call_proc.nil?
17 | if values.size == 0
18 | call_proc.call self, [] of String
19 | else
20 | call_proc.call self, Array(String).new(values.size) { |i| values[i].to_s }
21 | end
22 | end
23 |
24 | # Defines an operator compatible with __set_operators. It also checks the type of the arguments.
25 | macro define_runtime_call(_call, *_types, &_block)
26 | def _rt_{{_call.id}}(values : RuntimeCallArgs)
27 | {% if _types.empty? %}
28 | RuntimeCall.__require_no_arguments({{_call}}, values)
29 | {{yield}}
30 | {% else %}
> 31 | args = RuntimeCall.__require_arguments({{_call}}, values, {{*_types}})
32 | {{yield args}}
33 | {% end %}
34 | end
35 | {{RUNTIME_FUNCTIONS__ << _call}}
36 | end
37 |
38 | # Defines getter with an unused parameter so it is compatible with the prototype used by __set_operators
39 | macro getter_runtime_call(*_calls)
40 | {% for _call in _calls %}
41 | define_runtime_call({{_call}}) do
42 | @{{_call.id}}
43 | e