profile
viewpoint
If you are wondering where the data of this site comes from, please visit https://api.github.com/users/lexmag/events. GitMemory does not store any data, but only uses NGINX to cache data for a period of time. The idea behind GitMemory is simply to give users a better reading experience.
Aleksei Magusev lexmag Gothenburg, Sweden

elixir-plug/plug 2369

A specification and conveniences for composable modules between web applications

lexmag/elixir-style-guide 462

An opinionated Elixir style guide

lexhide/xandra 244

Fast, simple, and robust Cassandra driver for Elixir.

lexmag/msgpax 224

High-performance and comprehensive MessagePack implementation for Elixir / msgpack.org[Elixir]

lexmag/fluxter 96

High-performance and reliable InfluxDB writer for Elixir

elixir-plug/mime 72

A read-only and immutable MIME type module for Elixir

lexmag/oauther 55

An OAuth 1.0 for Elixir

lexmag/dicon 37

Simple release deliverer for Elixir

lexhide/maptu 27

Tiny library to convert from "encoded" maps to Elixir structs.

lexmag/blaguth 19

Basic Access Authentication in Plug applications

push eventelixir-lang/elixir

José Valim

commit sha 8fca53ad314501e193a4ab21ec2191a0f37600ce

Ensure deprecated macros emit warnings

view details

push time in 4 hours

push eventelixir-lang/elixir

José Valim

commit sha dac03b17c214689f940864de37c2286bed87d336

Ensure deprecated macros emit warnings

view details

push time in 4 hours

Pull request review commenterlang/otp

ssl: Fix signature algorithm selection for ECDSA

 get_cert_params(Cert) ->             _ ->                 undefined         end,-    {SignAlgo, Param, PublicKeyAlgo, RSAKeySize}.+    Curve = get_ec_curve(TBSCert#'OTPTBSCertificate'.subjectPublicKeyInfo),+    {SignAlgo, Param, PublicKeyAlgo, RSAKeySize, Curve}.++get_ec_curve(#'OTPSubjectPublicKeyInfo'{+                algorithm = #'PublicKeyAlgorithm'{+                               algorithm = {1,2,840,10045,2,1},

Done.

peterdmv

comment created time in 6 hours

pull request commentelixir-lang/elixir

Fix normalization of partial keyword list elements

:green_heart: :blue_heart: :purple_heart: :yellow_heart: :heart:

doorgan

comment created time in 7 hours

push eventelixir-lang/elixir

Dorgan

commit sha fb7179ff713c7fc9444307eb563c289a03505c1c

Fix normalization of partial keyword list elements (#11084)

view details

push time in 7 hours

PR merged elixir-lang/elixir

Fix normalization of partial keyword list elements

The Elixir.Normalizer lets us feed any arbitrary AST to the formatter, but if the user provides a list, and an element is a 2-tuple that is not one of the last elements, and the first element is a wrapped atom with format: :keyword metadata, then the formatter will happily print it as a keyword list element, despite it being invalid syntax, for example:

iex> opts = [literal_encoder: &{:ok, {:__block__, &2, [&1]}}]
iex> {_, _, [[tuple]]} = Code.string_to_quoted("[a: b]", opts)
iex> Macro.to_string([tuple, :not_a_tuple, tuple])
"[a: b, :not_a_tuple, a: b]"

With this PR we would get the expected output:

iex> Macro.to_string([tuple, :not_a_tuple, tuple])
"[{:a, b}, :not_a_tuple, a: b]"
+43 -1

0 comment

2 changed files

doorgan

pr closed time in 7 hours

PR opened elixir-lang/elixir

Fix normalization of partial keyword list elements

The Elixir.Normalizer lets us feed any arbitrary AST to the formatter, but if the user provides a list, and an element is a 2-tuple that is not one of the last elements, and the first element is a wrapped atom with format: :keyword metadata, then the formatter will happily print it as a keyword list element, despite it being invalid syntax, for example:

iex> opts = [literal_encoder: &{:ok, {:__block__, &2, [&1]}}]
iex> {_, _, [[tuple]]} = Code.string_to_quoted("[a: b]", opts)
iex> Macro.to_string([tuple, :not_a_tuple, tuple])
"[a: b, :not_a_tuple, a: b]"

With this PR we would get the expected output:

iex> Macro.to_string([tuple, :not_a_tuple, tuple])
"[{:a, b}, :not_a_tuple, a: b]"
+43 -1

0 comment

2 changed files

pr created time in 7 hours

startedlexmag/statix

started time in 7 hours

pull request commentelixir-ecto/postgrex

Fix invalid type error after failover

Maybe the same change should be done for the streaming of a prepared query?

I will review this soon but I just want to say the answer to this question is yes. :)

ok will do :)

chaodhib

comment created time in 8 hours

issue openederlang/otp

Cannot Call WX Copy Constructor

Describe the bug

It's impossible to call this copy constructor. The reason is that the color constructor above it matches a four element tuple (for {r, g, b, a}) and a wx_ref is also a four element tuple. Possible solutions might be to put record pattern matches above colors or to have color pattern matching check that at least their first element is a number.

To Reproduce

1> wx:new().
{wx_ref,0,wx,[]}
2> T = wxTextAttr:new().
{wx_ref,35,wxTextAttr,[]}
3> wxTextAttr:new(T).
** exception error: {{badarg,"colText"},{wxTextAttr,new,2}}
     in function  wxe_util:rec/1 (wxe_util.erl, line 110)

Expected behavior

It should not crash. It should return a reference to a new wxTextAttr instance.

Affected versions

OTP 24

created time in 8 hours

pull request commentelixir-ecto/postgrex

Fix invalid type error after failover

Maybe the same change should be done for the streaming of a prepared query?

I will review this soon but I just want to say the answer to this question is yes. :)

chaodhib

comment created time in 8 hours

fork Glimesh/oauther

An OAuth 1.0 for Elixir

fork in 9 hours

PR opened elixir-ecto/postgrex

Fix invalid type error after failover

This PR fixes https://github.com/elixir-ecto/postgrex/issues/550

The change to recv_parse_describe ensures that in case the Protocol & Query's types differ, the Query gets a new ref (to trigger an update to the Ecto cache) and gets the Protocol's types (both of these are done in describe_result/4).

Todo:

  • [ ] Maybe the same change should be done for the streaming of a prepared query?
+12 -16

0 comment

2 changed files

pr created time in 10 hours

release grafana/grafana

v7.5.9

released time in 10 hours

pull request commenterlang/otp

observer: add button to trace all processes and ports

Makes sense. I pushed a change for that.

legoscia

comment created time in 11 hours

PR opened phoenixframework/phoenix

Improve asset pipline docs

This is a complementation of https://github.com/phoenixframework/phoenix/pull/4337.

Things done:

  • Removed the Node.js version requirement from the installation guide
  • Added instead the "engines" field with node >=14.x to the package.json
+9 -8

0 comment

4 changed files

pr created time in 11 hours

Pull request review commenterlang/otp

epp: Fix inconsistent handling of undefined pre-defined macros

 scan_ifdef(Toks, IfDef, From, St) ->     wait_req_skip(St, [ifdef]).  scan_ifndef([{'(',_Alp},{atom,_Am,M},{')',_Arp},{dot,_Ad}], _IfnD, From, St) ->-    case St#epp.macs of-	#{M:=_Def} ->+    case is_macro_defined(M, St) of+        true -> 	    skip_toks(From, St, [ifndef]);-	_ ->+        false -> 	    scan_toks(From, St#epp{istk=[ifndef|St#epp.istk]})     end; scan_ifndef([{'(',_Alp},{var,_Am,M},{')',_Arp},{dot,_Ad}], _IfnD, From, St) ->-    case St#epp.macs of-	#{M:=_Def} ->+    case is_macro_defined(M, St) of+        true -> 	    skip_toks(From, St, [ifndef]);-	_ ->+        false -> 	    scan_toks(From, St#epp{istk=[ifndef|St#epp.istk]})     end; scan_ifndef(Toks, IfnDef, From, St) ->     T = find_mismatch(['(',var_or_atom,')',dot], Toks, IfnDef),     epp_reply(From, {error,{loc(T),epp,{bad,ifndef}}}),     wait_req_skip(St, [ifndef]). +is_macro_defined(Name, #epp{macs=Macs}) ->+    case Macs of+        #{Name := undefined} -> false;

Good, so this can be resolved.

bjorng

comment created time in 11 hours

issue commenterlang/otp

process waits spawn_opt/5 more than 4 hours

So far I was not able to reproduce this issue.

I think it may be explained by the fact that voluntarily I can break connection between nodes only in a predictable and conventional way. My user rights in the environment where I observed this situation are limited: I'm not able to kill docker container neither with erl process (my application) nor with istio (networking).

I tried to reproduce the issue just by killing erl process on one of cluster nodes from inside the docker container shell, but this is handled correctly, and I observed only expected behavior.

vyacheslavik

comment created time in 11 hours

pull request commentelixir-ecto/postgrex

Require elixir v11+

:green_heart: :blue_heart: :purple_heart: :yellow_heart: :heart:

chaodhib

comment created time in 12 hours

push eventelixir-ecto/postgrex

Chaouki Dhib

commit sha 17e25445a06e73e9016b19695c1bb3ab4991166a

Require elixir v11+ (#554)

view details

push time in 12 hours

PR merged elixir-ecto/postgrex

Require elixir v11+

Since https://github.com/elixir-ecto/postgrex/pull/547, Postgrex requires elixir v11 or superior.

+1 -1

0 comment

1 changed file

chaodhib

pr closed time in 12 hours

PR opened elixir-ecto/postgrex

Require elixir v11+

Since https://github.com/elixir-ecto/postgrex/pull/547, Postgrex requires elixir v11 or superior.

+1 -1

0 comment

1 changed file

pr created time in 12 hours

Pull request review commenterlang/otp

epp: Fix inconsistent handling of undefined pre-defined macros

 scan_ifdef(Toks, IfDef, From, St) ->     wait_req_skip(St, [ifdef]).  scan_ifndef([{'(',_Alp},{atom,_Am,M},{')',_Arp},{dot,_Ad}], _IfnD, From, St) ->-    case St#epp.macs of-	#{M:=_Def} ->+    case is_macro_defined(M, St) of+        true -> 	    skip_toks(From, St, [ifndef]);-	_ ->+        false -> 	    scan_toks(From, St#epp{istk=[ifndef|St#epp.istk]})     end; scan_ifndef([{'(',_Alp},{var,_Am,M},{')',_Arp},{dot,_Ad}], _IfnD, From, St) ->-    case St#epp.macs of-	#{M:=_Def} ->+    case is_macro_defined(M, St) of+        true -> 	    skip_toks(From, St, [ifndef]);-	_ ->+        false -> 	    scan_toks(From, St#epp{istk=[ifndef|St#epp.istk]})     end; scan_ifndef(Toks, IfnDef, From, St) ->     T = find_mismatch(['(',var_or_atom,')',dot], Toks, IfnDef),     epp_reply(From, {error,{loc(T),epp,{bad,ifndef}}}),     wait_req_skip(St, [ifndef]). +is_macro_defined(Name, #epp{macs=Macs}) ->+    case Macs of+        #{Name := undefined} -> false;

It's my understanding that defined macros are bound to {none,[Expr]} in that map, so there should be no issue.

bjorng

comment created time in 12 hours

Pull request review commenterlang/otp

epp: Fix inconsistent handling of undefined pre-defined macros

 scan_ifdef(Toks, IfDef, From, St) ->     wait_req_skip(St, [ifdef]).  scan_ifndef([{'(',_Alp},{atom,_Am,M},{')',_Arp},{dot,_Ad}], _IfnD, From, St) ->-    case St#epp.macs of-	#{M:=_Def} ->+    case is_macro_defined(M, St) of+        true -> 	    skip_toks(From, St, [ifndef]);-	_ ->+        false -> 	    scan_toks(From, St#epp{istk=[ifndef|St#epp.istk]})     end; scan_ifndef([{'(',_Alp},{var,_Am,M},{')',_Arp},{dot,_Ad}], _IfnD, From, St) ->-    case St#epp.macs of-	#{M:=_Def} ->+    case is_macro_defined(M, St) of+        true -> 	    skip_toks(From, St, [ifndef]);-	_ ->+        false -> 	    scan_toks(From, St#epp{istk=[ifndef|St#epp.istk]})     end; scan_ifndef(Toks, IfnDef, From, St) ->     T = find_mismatch(['(',var_or_atom,')',dot], Toks, IfnDef),     epp_reply(From, {error,{loc(T),epp,{bad,ifndef}}}),     wait_req_skip(St, [ifndef]). +is_macro_defined(Name, #epp{macs=Macs}) ->+    case Macs of+        #{Name := undefined} -> false;

No, the value for your dummy macro would be represented as [{atom,Anno,undefined}], which is different from undefined used to mark a pre-defined macro currently without a value.

bjorng

comment created time in 12 hours

delete branch elixir-lang/ex_doc

delete branch : wm-autolink2

delete time in 12 hours

push eventelixir-lang/ex_doc

Wojtek Mach

commit sha 563f79ceb07754743d664adb38b6c09ce754b370

Add ExDoc.Language.autolink_doc/2 and autolink_spec/2 callbacks

view details

Wojtek Mach

commit sha 985f2eaf5e027cd71173c03b8192175d53856e42

Prepare for autolinking Erlang docs

view details

Wojtek Mach

commit sha 9df725bee8eb714a79efa7d5548f3f5664bb3cd2

walk -> walk_doc

view details

Wojtek Mach

commit sha 544b2b20c42db837b80349cbe91e646ffb39820e

Start moving code back to Autolink

view details

Wojtek Mach

commit sha 08399bf273c5005b681b04b3df2f299abd20f5e2

Initial support for autolinking Erlang docs

view details

push time in 12 hours

PR opened erlang/otp

Clean up the help text for the emulator fix team:VM testing

Clean up the help text that the emulator prints when an invalid option is given.

The following errors were fixed:

  • The description of -asmdump was removed, and the description of the option under its new name -JDdump was added.

  • Added description of -JPperf.

  • Added a few missing newlines.

I also made the following changes to make the style more consistent between descriptions:

  • All descriptions now start with a verb with its initial letter in lowercase. (For example, "suggested stack size..." was changed to "suggest stack size...".)

  • A comma before an independent clause such "valid range is..." was changed to semicolon.

  • The period at the end of each description was removed.

  • The clause "see the erl(1) documentation for more info" was removed as it sort of applies to every description. References to other manual pages (such as to erts_alloc(3) were kept).

For easy of reading I did the following changes:

  • Added spaces around | in list of alternative. For example, "default|legacy" was changed to "default | legacy".

  • Inserted blank lines between group of options with a new initial letter.

+99 -74

0 comment

1 changed file

pr created time in 12 hours

push eventelixir-lang/ex_doc

Wojtek Mach

commit sha 711afe6717fe7480c49bab4794eabf6fcfddfd10

Initial support for autolinking Erlang docs

view details

push time in 13 hours

push eventelixir-lang/ex_doc

Wojtek Mach

commit sha 07603c1421632fcc1d1f646d71d018261b91ac59

Initial support for autolinking Erlang docs

view details

push time in 13 hours