Nick!
MModular
•Created by Lil'Nish on 11/16/2024 in #questions
Vale Status
You can ask Evan yourself in the Vale discord server. (The link is on the homepage of the Vale website.) 🙂
5 replies
MModular
•Created by ivellapillil on 10/24/2024 in #questions
Preserving mutability when passing to function
Nobody from Modular has given feedback yet, so it's just me and Owen doing work right now as far as I know.
42 replies
MModular
•Created by Lil'Nish on 10/22/2024 in #questions
Could Mojo be the first all purpose language?
It's time we put the "borrow checking is complicated" meme to bed. Mojo can achieve this, I'm sure of it.
15 replies
MModular
•Created by Lil'Nish on 10/22/2024 in #questions
Could Mojo be the first all purpose language?
but the borrow checker memory management is something many people are not going to like.I'm going to make sure it's likeable, don't worry about that. This has been my longstanding mission.
15 replies
MModular
•Created by Martin Dudek on 10/11/2024 in #community-showcase
Mojo dictionary benchmarks
Yes plz @Owen Hilyard. The frequent spilling of function signatures over multiple lines is such an eyesore!
69 replies
MModular
•Created by Martin Dudek on 10/11/2024 in #community-showcase
Mojo dictionary benchmarks
I also want to bring up moving to 88 characters at some point
69 replies
MModular
•Created by Carbon on 10/5/2024 in #questions
Mojo vs Rust memory safety
At least, it should be easy to get started. Maybe not to write your own low-level SIMD number crunching code.
16 replies
MModular
•Created by Carbon on 10/5/2024 in #questions
Mojo vs Rust memory safety
That’s the goal!
16 replies
MModular
•Created by jmky on 10/7/2024 in #questions
Is there a disdain for Rust from the Mojo team?
But the "actual" reason that Mojo doesn't use
&'
syntax is that in Rust, &T
is a built-in type, whereas in Mojo, the equivalent type is Pointer
which is not a built-in type. It's just a struct, so it's given a regular name, like other structs.23 replies
MModular
•Created by jmky on 10/7/2024 in #questions
Is there a disdain for Rust from the Mojo team?
@jmky Mojo's "lifetimes" don't actually work the same as Rust. They behave very, very differently. Given this, there's no real reason to make them visually similar. If anything, that would lead to more confusion, not less, because Rust programmers would expect Mojo references to behave the same as Rust references, which they don't, by design.
23 replies
MModular
•Created by Carbon on 10/5/2024 in #questions
Mojo vs Rust memory safety
To address just one point: I expect Mojo will offer some form of access control eventually. It would be easy to do and has many benefits beyond safety, e.g. API versioning.
But more generally, I understand what you're saying. I guess time will tell how the ethos of Mojo vs. Rust ends up differing.
16 replies
MModular
•Created by Carbon on 10/5/2024 in #questions
Mojo vs Rust memory safety
I'm not sure I agree with that characterization. 🫢 Mojo and Rust both have safe references, and unsafe references. But yes, perhaps Mojo programmers will choose to use unsafe operations more often, for the sake of optimization.
16 replies
MModular
•Created by Carbon on 10/5/2024 in #questions
Value Semantics and async code
I'd say the jury is still out on function color. If we can find a good way to avoid color, we will. But as of today, there is no agreement that it can be avoided.
6 replies
MModular
•Created by banananas on 9/23/2024 in #questions
"Linking" structs together?
(Also I think
Variant
should be renamed to Tagged
, since it's meant to be a tagged union.)44 replies
MModular
•Created by banananas on 9/23/2024 in #questions
"Linking" structs together?
Basically you can always replace a sum type declaration with an
alias
, e.g. alias Error = Variant[Error1, Error2, Error3]
. But we need to upgrade the UX of Variant
so that it matches sum types.44 replies
MModular
•Created by banananas on 9/23/2024 in #questions
"Linking" structs together?
I'm talking about a hypothetical future version of
Variant
. I haven't completed a design for that.44 replies
MModular
•Created by banananas on 9/23/2024 in #questions
"Linking" structs together?
(Mojo doesn't need enums for that to be nicer. It just needs a refined version of Variant, plus support for the sugar
MyStruct|MyOtherStruct
.)44 replies
MModular
•Created by AM on 4/22/2024 in #questions
effects system?
I/O can be modelled as reading and/or mutating a data source, so IMO it falls into the “tracking mutation” bucket.
4 replies
MModular
•Created by AM on 4/22/2024 in #questions
effects system?
Different people mean different things when they say “effect system”. In your mind, what does an effect system do, and how would it improve Mojo?
Mojo already tracks exceptions in function signatures. It also tracks some kinds of mutation (argument mutation), and it will track additional kinds of mutation once references are finalized.
4 replies
MModular
•Created by Grandimam on 4/12/2024 in #questions
Transfer operator inside constructor and moveinit
@Grandimam Actually, that's not the full story. When the
^
sigil is used in expressions of the form y = x^
, it triggers the invocation of the move constructor (__moveinit__
) on x
. (So in the program you posted, the move constructor that is being defined calls another move constructor.)
In other words, the ^
operator has two distinct purposes:
- To signal that the lifetime of a variable will end.
- To invoke __moveinit__
, when it is used in expressions of the form y = x^
.11 replies