Page MenuHomePhabricator

Jaehyun_Cho (Jaehyun Cho)
User

Projects

Today

  • Clear sailing ahead.

Tomorrow

  • Clear sailing ahead.

Friday

  • Clear sailing ahead.

User Details

User Since
Jul 24 2013, 3:26 AM (320 w, 6 d)
Availability
Available

Recent Activity

Today

Jaehyun_Cho added a comment to T8225: [C#] Generate method name beginning with verb.

@lauromoura
As I mentioned in D10001, some words are used as verb in some method names and they are used as noun in other method names.
To resolve this problem, we may need to introduce a new eo syntax.

Wed, Sep 18, 1:52 AM · efl: language bindings
Jaehyun_Cho updated the diff for D10001: eolian_mono: add more verbs to generate C# method beginning with verb.

add ref T8225

Wed, Sep 18, 1:15 AM · efl
Jaehyun_Cho requested review of D10001: eolian_mono: add more verbs to generate C# method beginning with verb.
Wed, Sep 18, 1:13 AM · efl

Yesterday

Jaehyun_Cho created T8225: [C#] Generate method name beginning with verb.
Tue, Sep 17, 11:19 PM · efl: language bindings
Jaehyun_Cho added a reviewer for D9968: elementary: unref objects when memory allocation fails in factory: devilhorns.
Tue, Sep 17, 6:06 PM · efl
Jaehyun_Cho updated the diff for D9968: elementary: unref objects when memory allocation fails in factory.

Fixed not to keep array and rebased

Tue, Sep 17, 6:05 PM · efl

Mon, Sep 16

Jaehyun_Cho retitled D9968: elementary: unref objects when memory allocation fails in factory from efl_ui_caching_factory: fix memory leak to elementary: fix memory leak in factory.
Mon, Sep 16, 4:19 AM · efl
Jaehyun_Cho updated the diff for D9968: elementary: unref objects when memory allocation fails in factory.

fixing memory leak in efl_ui_widget_factory.c is included

Mon, Sep 16, 4:10 AM · efl
Jaehyun_Cho updated the diff for D9968: elementary: unref objects when memory allocation fails in factory.

rename the error name

Mon, Sep 16, 3:56 AM · efl
Jaehyun_Cho requested review of D9968: elementary: unref objects when memory allocation fails in factory.
Mon, Sep 16, 3:48 AM · efl

Tue, Sep 10

Jaehyun_Cho updated the diff for D9891: eolian_mono: fix documentation warning by using "<" and ">".

update indentation

Tue, Sep 10, 11:39 PM · efl
Jaehyun_Cho accepted D9717: csharp: Revamp dotnet support.

@lauromoura
I cannot find a proper way to install Efl.Csharp.1.23.0.nupkg on Visual Studio Code on Ubuntu.
But that .nupkg can be installed Visual Studio on Windows.

Tue, Sep 10, 9:28 PM · DO NOT MERGE, efl
Jaehyun_Cho accepted D9841: evas_callbacks: make the callback protection a little bit safer.

Thank you. This patch wisely removes the redundant event callbacks. I think it's nice :)

Tue, Sep 10, 6:57 AM · efl
Jaehyun_Cho added a comment to D9717: csharp: Revamp dotnet support.

@lauromoura
After applying this patch, it seems that efl_sharp.dll is not installed.
efl_sharp.dll is created in efl/core/efl/build/src/bindings/mono/efl_sharp.dll but it is not installed in /usr/local/...

Tue, Sep 10, 5:55 AM · DO NOT MERGE, efl
Jaehyun_Cho added a comment to D9841: evas_callbacks: make the callback protection a little bit safer.

The declarations of evas_object_callback_init() and evas_object_callback_shutdown() in evas_private.h are required to be removed.

Tue, Sep 10, 5:00 AM · efl
Jaehyun_Cho requested review of D9891: eolian_mono: fix documentation warning by using "<" and ">".
Tue, Sep 10, 12:54 AM · efl

Fri, Sep 6

Jaehyun_Cho accepted D9813: efl_ui_spotlight: migrate from active_index to active_element.

Thank you~

Fri, Sep 6, 7:07 AM · efl
Jaehyun_Cho added a comment to D9813: efl_ui_spotlight: migrate from active_index to active_element.

One minor thing.

Fri, Sep 6, 5:52 AM · efl

Thu, Sep 5

Jaehyun_Cho requested changes to D9813: efl_ui_spotlight: migrate from active_index to active_element.

I've left some comments based on the test result of "Navigation stack" in elementary test.

Thu, Sep 5, 10:47 PM · efl

Wed, Sep 4

Jaehyun_Cho added a comment to T8162: C#: .cs file naming with PascalCase.

@lauromoura
It is confirmed that SA1402 is not mandatory but it is recommended.

Wed, Sep 4, 11:32 PM · efl (efl-1.23), Active Work Proposal, Restricted Project, efl: language bindings
Jaehyun_Cho added a comment to T8162: C#: .cs file naming with PascalCase.

@lauromoura
I will ask the reporter who raised this issue in detail and I will let you know.

Wed, Sep 4, 4:24 AM · efl (efl-1.23), Active Work Proposal, Restricted Project, efl: language bindings
Jaehyun_Cho added a comment to D9642: efl_ui_widget: add a place to share data.

Honestly, I dont have enough knowledge about canvas object's event so I cannot judge your idea.. :(
As you said we should ask canvas people about it.

Wed, Sep 4, 3:59 AM · efl
Jaehyun_Cho updated subscribers of D9642: efl_ui_widget: add a place to share data.

Hello~
@YOhoho and I found an issue related to this patch.

Wed, Sep 4, 1:42 AM · efl

Tue, Sep 3

Jaehyun_Cho closed D9818: elm_popup: calculate the label min size of popup before the popup group calculation.
Tue, Sep 3, 3:47 AM · efl
Jaehyun_Cho accepted D9818: elm_popup: calculate the label min size of popup before the popup group calculation.
Tue, Sep 3, 3:46 AM · efl
Jaehyun_Cho added a comment to T8162: C#: .cs file naming with PascalCase.

This may be hard with meson. See my first comment on its limitations.

I totally understand. If it is hard on upstream with meson, then I consider that I run some script manually to generate directories and change the cs names only for Tizen.

Tue, Sep 3, 12:12 AM · efl (efl-1.23), Active Work Proposal, Restricted Project, efl: language bindings

Mon, Sep 2

Jaehyun_Cho added a comment to T8162: C#: .cs file naming with PascalCase.

@segfaultxavi
The main issues of this task are as follows.

Mon, Sep 2, 10:37 PM · efl (efl-1.23), Active Work Proposal, Restricted Project, efl: language bindings
Jaehyun_Cho added a comment to D9692: eolian-mono: Renaming suffix for event and event args.

Thank you for this patch! :)

Mon, Sep 2, 5:51 AM · efl: language bindings, efl (efl-1.23), Restricted Project
Jaehyun_Cho added a comment to T8164: C#: Event args suffix.

Sorry I missed D9692, I've reverted ac99e2ac9410d5b2ef6225fa1aaaf9ffcd6578fb

Mon, Sep 2, 5:43 AM · efl (efl-1.23), Active Work Proposal, Restricted Project, efl: language bindings
Jaehyun_Cho closed D9622: csharp: add SetKeyValue and GetKeyValue to EoWrapper.
Mon, Sep 2, 5:36 AM · efl
Jaehyun_Cho updated the summary of D9622: csharp: add SetKeyValue and GetKeyValue to EoWrapper.
Mon, Sep 2, 5:35 AM · efl
Jaehyun_Cho added a comment to T8164: C#: Event args suffix.

For now, I've removed the underscore of Evt_Args by ac99e2ac9410d5b2ef6225fa1aaaf9ffcd6578fb

Mon, Sep 2, 5:30 AM · efl (efl-1.23), Active Work Proposal, Restricted Project, efl: language bindings
Jaehyun_Cho added a comment to D9622: csharp: add SetKeyValue and GetKeyValue to EoWrapper.

As we discussed, this patch is basically additional manual binding specific for being able to associate native object to an eo object.

Mon, Sep 2, 5:26 AM · efl
Jaehyun_Cho closed D9814: efl_canvas_animation_player: delete previous target event callback.
Mon, Sep 2, 5:03 AM · efl
Jaehyun_Cho accepted D9814: efl_canvas_animation_player: delete previous target event callback.
Mon, Sep 2, 4:54 AM · efl
Jaehyun_Cho added a comment to T7592: efl.config.

I don't know well about the original purpose of T7383 but the related tasks are mainly about how to support config set easily in EFL#.

Mon, Sep 2, 1:23 AM · efl (efl-1.23), efl: api

Fri, Aug 30

Jaehyun_Cho added a comment to T7991: efl.ui.spotlight.container.

Sorry about replying late.. ;)

Fri, Aug 30, 5:21 AM · efl (efl-1.23), efl: language bindings
Jaehyun_Cho added a comment to T8166: C#: Remove I prefix from regular classes.

Can we change this task name?

Fri, Aug 30, 4:58 AM · efl (efl-1.23), Active Work Proposal, Restricted Project, efl: language bindings

Fri, Aug 23

Jaehyun_Cho added a comment to T8172: C#: Correct order of access modifiers and inheritance modifiers.

@lauromoura
Could you please consider this task?

Fri, Aug 23, 5:56 AM
Jaehyun_Cho triaged T8172: C#: Correct order of access modifiers and inheritance modifiers as High priority.
Fri, Aug 23, 5:56 AM
Jaehyun_Cho closed D9721: slider_cxx_example: Fix use wrong api.
Fri, Aug 23, 2:09 AM · efl
Jaehyun_Cho accepted D9721: slider_cxx_example: Fix use wrong api.
Fri, Aug 23, 2:08 AM · efl

Wed, Aug 21

Jaehyun_Cho added a commit to T7893: efl.ui.slider: rEFL1cbcbbdfa6be: efl_ui_slider : remove all the legacy checking.
Wed, Aug 21, 3:15 AM · efl: api, efl (efl-1.23), efl: language bindings
Jaehyun_Cho closed D9670: efl_ui_slider : remove all the legacy checking.
Wed, Aug 21, 3:15 AM · efl
Jaehyun_Cho accepted D9670: efl_ui_slider : remove all the legacy checking.
Wed, Aug 21, 3:14 AM · efl
Jaehyun_Cho closed D9672: efl_ui_animation_view: add document of Efl.Ui.Animation_View_State enum.
Wed, Aug 21, 3:00 AM · efl
Jaehyun_Cho accepted D9672: efl_ui_animation_view: add document of Efl.Ui.Animation_View_State enum.
Wed, Aug 21, 2:59 AM · efl

Tue, Aug 20

Jaehyun_Cho added a comment to T8057: RFC: Efl.Ui.Selectable.

I have the same opinions with @SanghyeonLee for 1, 2, 3.

Tue, Aug 20, 5:55 AM · efl: api

Mon, Aug 19

Jaehyun_Cho requested review of D9622: csharp: add SetKeyValue and GetKeyValue to EoWrapper.
Mon, Aug 19, 3:17 AM · efl
Jaehyun_Cho abandoned D9621: EoWrapper: add SetKeyValue and GetKeyValue.
Mon, Aug 19, 3:14 AM · efl
Jaehyun_Cho requested review of D9621: EoWrapper: add SetKeyValue and GetKeyValue.
Mon, Aug 19, 3:14 AM · efl

Aug 16 2019

Jaehyun_Cho created T8143: eio_eet_data_image_write_cipher() makes eet_dictionary NULL.
Aug 16 2019, 5:47 AM · Bug Report

Aug 14 2019

Jaehyun_Cho closed D9566: efl_ui_layout: remove efl_gfx_hint_size_min_set in _sizing_eval.
Aug 14 2019, 1:49 AM · efl
Jaehyun_Cho accepted D9566: efl_ui_layout: remove efl_gfx_hint_size_min_set in _sizing_eval.
Aug 14 2019, 1:47 AM · efl

Aug 4 2019

Jaehyun_Cho added a comment to T7922: enum Efl.Ui.Select_Mode.

It seems that this task is related to T8057.

Aug 4 2019, 7:01 PM · efl: api, efl (efl-1.23), efl: language bindings

Aug 2 2019

Jaehyun_Cho added a comment to D9485: efl_input_clickable: increase the time interval for repeated counter.

No, there is no information about the initial time interval.
So I think there is no problem of applying 0.25 second here :)

Aug 2 2019, 1:05 AM · efl

Aug 1 2019

Jaehyun_Cho added a reviewer for D9485: efl_input_clickable: increase the time interval for repeated counter: YOhoho.
Aug 1 2019, 10:48 PM · efl
Jaehyun_Cho updated the diff for D9485: efl_input_clickable: increase the time interval for repeated counter.

@YOhoho Thank you very much for your comment! :) I did not know that. I also updated the commit message as well. When I modified time interval from 0.5 to 0.25, I think that repeated counter is calculated fine for double click and triple click.

Aug 1 2019, 10:45 PM · efl
Jaehyun_Cho added a comment to T7976: Efl.Input.Clickable_Clicked.

@segfaultxavi Thank you very much! :) Your clear explanation helped me to fully understand this feature. I made D9485 to increase the time interval. I adopted your explanation~ :)

Aug 1 2019, 9:53 PM · efl: api, efl (efl-1.23), efl: language bindings
Jaehyun_Cho requested review of D9485: efl_input_clickable: increase the time interval for repeated counter.
Aug 1 2019, 9:50 PM · efl
Jaehyun_Cho added a comment to T7976: Efl.Input.Clickable_Clicked.

Is there a use case that developers use the value "repeated"?

There are some apps which use triple-clicking (like selecting a word with double-click, and a whole paragraph with triple-click).

Aug 1 2019, 4:39 AM · efl: api, efl (efl-1.23), efl: language bindings
Jaehyun_Cho added a comment to T7976: Efl.Input.Clickable_Clicked.

Is there a use case that developers use the value "repeated"?

Aug 1 2019, 2:47 AM · efl: api, efl (efl-1.23), efl: language bindings
Jaehyun_Cho closed D9454: efl_ui_clickable_util: remove efl_input_processed_set.
Aug 1 2019, 1:25 AM · efl
Jaehyun_Cho added a comment to D9454: efl_ui_clickable_util: remove efl_input_processed_set.

thank you :)

Aug 1 2019, 1:25 AM · efl
Jaehyun_Cho added a comment to T8057: RFC: Efl.Ui.Selectable.

@bu5hm4n I haven't started yet. It's ok if you go with this :) Are you thinking of implementing all (Selectable for item + Selectable for container) ?

Aug 1 2019, 1:18 AM · efl: api
Jaehyun_Cho added a comment to D9454: efl_ui_clickable_util: remove efl_input_processed_set.

@bu5hm4n I agree with this patch~ If you also agree with this patch, then I will submit this patch~ :)

Aug 1 2019, 1:01 AM · efl
Jaehyun_Cho accepted D9454: efl_ui_clickable_util: remove efl_input_processed_set.
Aug 1 2019, 12:58 AM · efl

Jul 31 2019

Jaehyun_Cho closed D9450: efl_ui_spotlight: pop() unpacks content although there is one content.
Jul 31 2019, 3:21 AM · efl
Jaehyun_Cho added inline comments to D9450: efl_ui_spotlight: pop() unpacks content although there is one content.
Jul 31 2019, 2:18 AM · efl
Jaehyun_Cho updated the diff for D9450: efl_ui_spotlight: pop() unpacks content although there is one content.

I restored the code that initially creates and packs pages in stack example.
I also fixed the code of future_then_cb to check eina_value correctly in stack example.

Jul 31 2019, 2:16 AM · efl
Jaehyun_Cho updated the diff for D9450: efl_ui_spotlight: pop() unpacks content although there is one content.

@bu5hm4n Thank you very much for the comment! It corrects this patch clearly and easily :)
BTW, I return efl_loop_future_resolved although the content is deleted. It seems that other content deleted case returns future with NULL Eina_Value.

Jul 31 2019, 1:48 AM · efl
Jaehyun_Cho added a comment to D9450: efl_ui_spotlight: pop() unpacks content although there is one content.

There is one thing related to this patch.

Jul 31 2019, 12:04 AM · efl

Jul 30 2019

Jaehyun_Cho requested review of D9450: efl_ui_spotlight: pop() unpacks content although there is one content.
Jul 30 2019, 11:52 PM · efl
Jaehyun_Cho closed T8040: Efl.Ui.Active_View.View_Manager_Scroll: Support scroll functions as Resolved.

yes right~

Jul 30 2019, 11:46 PM · efl: api
Jaehyun_Cho closed T8040: Efl.Ui.Active_View.View_Manager_Scroll: Support scroll functions, a subtask of T7993: efl.ui.spotlight.view_manager_scroll, as Resolved.
Jul 30 2019, 11:46 PM · efl (efl-1.23), efl: language bindings
Jaehyun_Cho closed D9444: efl_ui_spotlight: add scroll_block to Manager_Scroll.
Jul 30 2019, 11:42 PM · efl
Jaehyun_Cho updated the diff for D9444: efl_ui_spotlight: add scroll_block to Manager_Scroll.

@bu5hm4n Thank you for the comment :) I added the condition to check if mouse move is active.

Jul 30 2019, 12:05 AM · efl

Jul 29 2019

Jaehyun_Cho updated the diff for D9444: efl_ui_spotlight: add scroll_block to Manager_Scroll.

Added commit message related task T8040

Jul 29 2019, 11:35 PM · efl
Jaehyun_Cho requested review of D9444: efl_ui_spotlight: add scroll_block to Manager_Scroll.
Jul 29 2019, 11:20 PM · efl
Jaehyun_Cho claimed T8040: Efl.Ui.Active_View.View_Manager_Scroll: Support scroll functions.
Jul 29 2019, 8:06 PM · efl: api

Jul 24 2019

Jaehyun_Cho added a comment to D9305: efl_ui_spotlight_container: mirror the behavior of view_manager.

I totally agree with you creating a ticket to discuss general things and concepts.

Jul 24 2019, 5:47 AM · efl

Jul 23 2019

Jaehyun_Cho added a comment to D9305: efl_ui_spotlight_container: mirror the behavior of view_manager.

Like D9304, this patch is to keep @owned mark for Eo handle.
I think we need to discuss if it is appropriate that we allow @owned for Eo handle to pass ownership from caller to callee.

  • Eo handle cannot be exclusively possessed
Jul 23 2019, 9:56 PM · efl

Jul 22 2019

Jaehyun_Cho added a comment to T8025: efl.ui.radio_group_impl.

I don't know how important of using integer values instead of continuous indices for Radio_Buttons.

Jul 22 2019, 3:39 AM · efl: api, efl (efl-1.23), efl: language bindings
Jaehyun_Cho added a comment to T8025: efl.ui.radio_group_impl.

I think that the use case you mentioned is so special and specific case.
IMO, most of the cases, it appears that user feels no difficulties when they use continuous numbers for Radio_Buttons.

Jul 22 2019, 3:33 AM · efl: api, efl (efl-1.23), efl: language bindings
Jaehyun_Cho added a comment to T8025: efl.ui.radio_group_impl.

I understand the convenience of state_value.

Jul 22 2019, 1:37 AM · efl: api, efl (efl-1.23), efl: language bindings

Jul 21 2019

Jaehyun_Cho added a comment to T8025: efl.ui.radio_group_impl.

About state_value of Efl.Ui.Radio_Button, I would like to let's think if we really need this property.

Jul 21 2019, 10:33 PM · efl: api, efl (efl-1.23), efl: language bindings

Jul 19 2019

Jaehyun_Cho added a comment to T8025: efl.ui.radio_group_impl.

If you say we need interface because SingleSelectable interface does not have (P) selected_object, then we can add it to Single_Selectable interface, right?

Since register() and unregister() is not required to be called by user with radio group container and all the selected methods are provided in SingleSelectable interface, it would be the same.
User calls select(), unselect(), and other selected methods which may not be written by me in the proposal.

Jul 19 2019, 3:19 AM · efl: api, efl (efl-1.23), efl: language bindings

Jul 18 2019

Jaehyun_Cho added a comment to T8025: efl.ui.radio_group_impl.

If Radio_Group becomes a class based on the proposal, your design to turn any container into radio group container works.

Jul 18 2019, 5:35 AM · efl: api, efl (efl-1.23), efl: language bindings
Jaehyun_Cho added a comment to T8025: efl.ui.radio_group_impl.

I created https://phab.enlightenment.org/T8057 for refactoring interface Efl.Ui.Selectable.

Jul 18 2019, 1:34 AM · efl: api, efl (efl-1.23), efl: language bindings
Jaehyun_Cho created T8057: RFC: Efl.Ui.Selectable.
Jul 18 2019, 1:23 AM · efl: api
Jaehyun_Cho added a comment to T8025: efl.ui.radio_group_impl.
However, I wanted to say that avoiding name collisions between `Efl.Ui.Button` and `Efl.Ui.Radio.Button` is not a good argument. We already have multiple collisions with the `Object` name. In C#, when you start `using` multiple namespaces you know you will have collisions, and it will be your fault!
Jul 18 2019, 12:20 AM · efl: api, efl (efl-1.23), efl: language bindings

Jul 17 2019

Jaehyun_Cho added a comment to T8025: efl.ui.radio_group_impl.
In T8025#138411, @zmike wrote:

Because both Check and Radio_Button change their state to "selected" if "clicked" event happens.
But unlike Check, Radio keeps its state as "selected" if "clicked" event happens on its "selected" state. (Check changes its state to "unselected" in the same case)

I'm not sure I understand this point?

Conceptually, when a button is "clicked", it enters the "pressed" state and then immediately returns to the "unpressed" state. At no point does a button remain "pressed" or, as you call it, "selected".

When a check or a radio is "clicked", it enters the "selected" state. It does not leave this state unless another click occurs. While it's true that clicking the same check again has a different effect than re-selecting a radio, typically you would consider the entire radio group as a single widget; one radio by itself is not very useful.

Jul 17 2019, 4:50 AM · efl: api, efl (efl-1.23), efl: language bindings
Jaehyun_Cho added a comment to D9332: eo: add helper for checking the ownable state.

I left a comment on efl_ownable in D9304.

Jul 17 2019, 4:24 AM · efl
Jaehyun_Cho added a comment to D9304: efl_ui_spotlight_container: fix ownership behavior of view_manager.

I agree that there should be a error preventing you from doing something that is not good. I will add a helper to eo, which makes it easy to use, (or maybe can be added completly by eolian). However, such a helper will only contain a error, and never change the state or reference things of a object. Its IMO bad if we have code that just alters the references and parents to *prepare* something for you, there is one case where it might be right, others where it might be wrong. But overall the API user should have the overview (and a error if he does wrong things).

I agree with you that we should avoid manipulation of user's object as far as possible

Jul 17 2019, 4:19 AM · efl

Jul 16 2019

Jaehyun_Cho added a comment to D9304: efl_ui_spotlight_container: fix ownership behavior of view_manager.

After thinking about ownership a while, somehow I understand your opinion about ownership.
(If I understand you correctly, you think that user should understand ownership and user should do the right thing for ownership)

Jul 16 2019, 5:48 AM · efl
Jaehyun_Cho added a comment to T8025: efl.ui.radio_group_impl.

Related to the Radio_Button, what do you think about Efl.Ui.Check inherits from Efl.Ui.Button?

Jul 16 2019, 5:09 AM · efl: api, efl (efl-1.23), efl: language bindings
Jaehyun_Cho added a comment to T8025: efl.ui.radio_group_impl.

@segfaultxavi
Thank you for suggestion! :)

Jul 16 2019, 4:48 AM · efl: api, efl (efl-1.23), efl: language bindings
Jaehyun_Cho added a comment to T8025: efl.ui.radio_group_impl.

The following is my initial comment in T7867 of this comment threads.. ;)

Jul 16 2019, 1:32 AM · efl: api, efl (efl-1.23), efl: language bindings

Jul 15 2019

Jaehyun_Cho added a comment to T8025: efl.ui.radio_group_impl.

Related to radio, we need to support setting radio into other containers. (e.g. Efl.Ui.List)

This is exactly the reason why @bu5hm4n separated Efl.Ui.Radio_Group into an interface and an implementation class. This separation allows attaching the Efl.Ui.Radio_Group_Impl implementation to any widget, turning the widget into a radio group manager.
This is currently in use in the Efl.Ui.Radio_Box widget, making it very easy to implement and to use.
I think you should do the same thing to include radio buttons inside a list: Create an Efl.Ui.Radio_List widget, that behaves like Efl.Ui.Radio_Box.

Jul 15 2019, 10:42 PM · efl: api, efl (efl-1.23), efl: language bindings
Jaehyun_Cho added a comment to D9304: efl_ui_spotlight_container: fix ownership behavior of view_manager.

Honestly, I think that developers don't know why they should not use efl_add for spotlight manager.
Although they read description of the manager_set() and @owned, they still don't know why efl_add is not allowed.

Jul 15 2019, 1:32 AM · efl