You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Bugs in dataization implementation (fixed on Nikolai's machine):
Dataization should not happen inside dispatch (and application)
Dataization did not correctly handle context for Package
Problems in normalization rules:
It is not specified in the rules that ρ is void by default?
If ρ is void, then we cannot normalize inside any object, before specifying its ρ.
Handling of ξ is incorrect in Yegor's rules (and also the version in yegor.yaml is wrong):
At the very least it does not handle ξ inside arguments of applications
Also it should only be fully determined when we perform dispatch (otherwise, we may have some void attributes, such as ρ)
Suggestion: use substitution for ξ when doing dispatch, like in the minimal calculus (but simpler, because we do not have arbitrary locators, only ξ)
Handling of ρ is incorrect in the rules (but EO works correctly):
Counterexample: {⟦ x ↦ ⟦ b ↦ ⟦ Δ ⤍ 01- ⟧, φ ↦ ⟦ b ↦ ⟦ Δ ⤍ 02- ⟧, c ↦ ⟦ a ↦ ξ.ρ.ρ.b ⟧.a ⟧.c ⟧.φ, λ ⤍ Package ⟧}
Intuition that I have:
ξ.ρ = this in Java (when implementing a method, matches the current implementation of standard EO objects, such as int, bool)
ξ.ρ.ρ = this in Java (when implementing a method and writing something in a nested function/object)
ρ preserves environment, so using application is not correct, since the environment changes for all subterms (except inside subformations) as well
Attaching ρ is basically closure conversion.
Suggestion: inject ρ in all formations as part of ξ-substitution!
Metrics:
When objects contain unknown atoms, we inline/expand definitions uses of object (such as int/bool), which increases metrics
When explicitly adding ρ-attribute, metrics grow exponentially — another reason to avoid ρ as attribute
However, when all atoms are known and all is good in the input, metrics indeed decrease (e.g. bool-tests.phi)
Questions about the EO compiler:
α0 instead of as-bytes for positional arguments; should this be handled by the normalizer or by eoc phi?
Void ρ results in block of available rules, since we cannot reduce inside of formations with void attributes.
Suggested update on ξ term rules.
Update all top-level ξ's during dispatch.
Showed example of how ρ after dispatch breaks.
ρ reminds of working with closures. There is a suggestion to deal with ρ outside of reduction rule, but on a lower level of a virtual machine of some kind.
Atoms are being implemented.
The text was updated successfully, but these errors were encountered:
Nickolay's pre-meeting notes
yegor.yaml
is wrong):ξ.ρ.ρ = this in Java (when implementing a method and writing something in a nested function/object)
α0
instead ofas-bytes
for positional arguments; should this be handled by thenormalizer
or byeoc phi
?org.eolang.bytes
does not have a void Δ-attribute; should this be handled by thenormalizer
or byeoc phi
?eo:phi
doesn't generate an empty \Delta binding forint
,bool
, etc. eo#3082λ → Package
to program; should this be handled byeoc
instead? maybeλ → Test
for test files?Lorg_eolang_bytes_as_int
andLorg_eolang_bytes_as_float
are atoms and not defined in pure EO?bytes.as-float
,bytes.as-int
, andbytes.as-string
with EO code eo#3116Anatoliy's meeting notes
as_bytes
attribute issue cannot be resolved in general on EO's side, it will be handled on normalizer's side.λ -> Test
.as_float
atom and others will be removed.The text was updated successfully, but these errors were encountered: