josevalim

josevalim

Creator of Elixir

Hi everyone,

We have just released v1.7.0-rc.0.

The CHANGELOG and precompiled files are here: Release v1.7.0-rc.0 · elixir-lang/elixir · GitHub

Please give it a try! You can either compile the v1.7 branch from source OR use the precompiled files, as described in our install page.

Note that you will need {:ex_doc, "~> 0.19-rc"} if you want to generate docs using the release candidate.

Happy coding!

Showing Posts 1 to 10

Eiji

Eiji

Documentation metadata

This is awesome idea! When I firstly saw related github issue I was so surprised, because I did not expect such useful change. I believe that it will simplify lots of things.

compile_time_purge_matching

I really love this. I will use it definitely in already maintained projects!

–failed flag

It will definitely help. Fortunately my tests are really fast. :smile:

[Code] Add Code.purge_compiler_modules/0 that purges any compiler module left behind. This is useful for live systems dynamically compiling code

Added on personal TODO list for rewrite plan of ex_api library! :smiley:

[IO.ANSI] Add cursor movement to IO.ANSI

Awesome! It will definitely help creating console scripts.

I will try to find a time to test those changes in this weekend. Good work!

dimitarvp

dimitarvp

[Code] Add Code.purge_compiler_modules/0 that purges any compiler module left behind. This is useful for live systems dynamically compiling code

Does this mean that this call is recommended for projects that use fastglobal? Probably immediately after calling FastGlobal.put?

Apologies if it’s a stupid question.

michalmuskala

michalmuskala

This is generally only required if the compiler cannot automatically release the compiler modules - this is the case if the module body contain anonymous functions (because we don’t know if they wen’t used for spawning processes or stored somewhere). I don’t think it’s required for fastglobal.

EDIT: I’ve just checked the fastglobal code and it compiles the data modules using Erlang compiler and not the elixir one, so it does not affect it in any way.

OvermindDL1

OvermindDL1

The new --cover seems to work well. :slight_smile:

benwilson512

benwilson512

Author of Craft GraphQL APIs in Elixir with Absinthe

Hey @josevalim it seems that Absinthe schemas are entirely broken on the RC, I’m trying to trace down what the root issue here, but I’m not seeing any notable changes to macros or module attributes.

I have a __using__ macro that returns

quote do
  Module.register_attribute(__MODULE__, :foo, accumulate: true)
end

which seems to be behaving differently now. If I change that call to Module.register_attribute(__CALLER__.module, :foo, accumulate: true) in the macro body it seems to work better, although that doesn’t totally fix the issue.

josevalim

josevalim OP

Creator of Elixir

@benwilson512 We did refactor this part of the codebase, so I will gladly take a look if you have failing tests in Absinthe’s suite or a small file I can run with mix run inside Absinthe.

benwilson512

benwilson512

Author of Craft GraphQL APIs in Elixir with Absinthe

Thanks! Use the 1.7-issue branch which disables certain validations, otherwise the project doesn’t compile. Then in iex -S mix do:

defmodule Foo do
  use Absinthe.Schema.Notation

  object :user do
    field :foo, :string
  end
end

You’ll get some debug output from an IO.inspect function I’ve added here: https://github.com/absinthe-graphql/absinthe/blob/1.7-issue/lib/absinthe/schema/notation/writer.ex#L75

If you mess with that file you’ll run into Bug #1 we’ve actually had a while, where editing the Writer module file requires rm -rf _build or you get a compilation error for some reason.

The new issue however is that if you look at the debug output, the definitions list is empty. “there should be stuff but there isn’t stuff” is one of the less easy things to debug I realize. You can find the first usage of that module attribute here: https://github.com/absinthe-graphql/absinthe/blob/1.7-issue/lib/absinthe/schema/notation.ex#L25

benwilson512

benwilson512

Author of Craft GraphQL APIs in Elixir with Absinthe

I’ll apologize ahead of time for the complexity of the module, the schema building code is some of the oldest in Absinthe. We’re in the middle of reworking it to be simpler and more data driven but it’s still a ways from being ready to ship.

josevalim

josevalim OP

Creator of Elixir

@benwilson512 Thanks. I will investigate. You should probably consider have an optional build on Travis for Absinthe that runs on Elixir master. This way we can find this failures earlier. :slight_smile:

Qqwy

Qqwy

TypeCheck Core Team

Very cool! :heart_eyes:


Question about the changelog:

In ‘Documentation metadata’, the following example is used:

@moduledoc "A brand new module"
@moduledoc authors: ["Jane", "Mary"], since: "1.4.0"

Right below that, it states that Elixir currently supports the keys :deprecated and :since.

What about the :authors-key that is used in the example?

Where Next? Top

Trending in News Top

Other Trending Topics Top

mudasobwa
I am happy to introduce the very α version of the new programming language compiled to BEAM. Welcome Cure. It has literally three kille...
New
garrison
Hobbes is a low-level distributed database for the Elixir programming language. Hobbes provides a simple, safe, and scalable storage lay...
New
marciok
Hi there! We created Gust: A task orchestrator inspired by Airflow. For those who have never heard about Aiflow, it’s a Python-based wor...
New
jimsynz
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New
mcass19
ExRatatui lets you cook up rich terminal UIs in Elixir, powered by Rust’s ratatui via Rustler NIFs. Build interactive terminal applicatio...
New
Damirados
Hello everyone. After busy few months I am happy to announce v0.1.0 of Emerge & Solve. They are GUI (Emerge) and State management (S...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews