Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:Ledest:erlang:24
erlang
0115-compiler-Add-ASM-form-to-compile-forms-2-s...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0115-compiler-Add-ASM-form-to-compile-forms-2-spec.patch of Package erlang
From 434d1e8ad396c9c4c96e232741614da97ae3de15 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-S=C3=A9bastien=20P=C3=A9dron?= <jean-sebastien.pedron@dumbbell.fr> Date: Mon, 18 Oct 2021 17:22:41 +0200 Subject: [PATCH] compiler: Add ASM form to compile:forms/2 spec This was missing so far because the assembly form was never specified. This patch adds a type spec for the assembly form to the beam_disasm module. This location was chosen because it also defines the #function{} record which is used in the assembly form. --- lib/compiler/src/beam_disasm.erl | 8 ++++++++ lib/compiler/src/compile.erl | 4 +--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/lib/compiler/src/beam_disasm.erl b/lib/compiler/src/beam_disasm.erl index 40359c1c54..94d4a53ab6 100644 --- a/lib/compiler/src/beam_disasm.erl +++ b/lib/compiler/src/beam_disasm.erl @@ -44,6 +44,14 @@ -type disasm_tag() :: symbolic_tag() | 'fr' | 'atom' | 'float' | 'literal'. -type disasm_term() :: 'nil' | {disasm_tag(), _}. +-type asm_form() :: {module(), + [{atom(), arity()}], + [beam_lib:attrib_entry()], + [#function{}], + beam_lib:label()}. + +-export_type([asm_form/0]). + %%----------------------------------------------------------------------- -define(NO_DEBUG(Str,Xs), ok). diff --git a/lib/compiler/src/compile.erl b/lib/compiler/src/compile.erl index faed60e938..5c3b4d138a 100644 --- a/lib/compiler/src/compile.erl +++ b/lib/compiler/src/compile.erl @@ -49,9 +49,7 @@ -type abstract_code() :: [erl_parse:abstract_form()]. -%% Internal representations used for 'from_asm' compilation can also be valid, -%% but have no relevant types defined. --type forms() :: abstract_code() | cerl:c_module(). +-type forms() :: abstract_code() | cerl:c_module() | beam_disasm:asm_form(). -type option() :: atom() | {atom(), term()} | {'d', atom(), term()}. -- 2.31.1
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor