[Boards: 3 / a / aco / adv / an / asp / b / biz / c / cgl / ck / cm / co / d / diy / e / fa / fit / g / gd / gif / h / hc / his / hm / hr / i / ic / int / jp / k / lgbt / lit / m / mlp / mu / n / news / o / out / p / po / pol / qa / r / r9k / s / s4s / sci / soc / sp / t / tg / toy / trash / trv / tv / u / v / vg / vp / vr / w / wg / wsg / wsr / x / y ] [Home]
4chanarchives logo
Sup /g/, I've spent 5 years writing a programming langu
Images are sometimes not shown due to bandwidth/network limitations. Refreshing the page usually helps.

You are currently reading a thread in /g/ - Technology

Thread replies: 157
Thread images: 5
Sup /g/, I've spent 5 years writing a programming language:

https://github.com/jesserayadkins/lily

> Statically-typed, but interpreted
> Speed between Python and Lua
> Automatic memory management through gc + refcounting

I can't sleep right now, so wanna ask me anything?
>>
>Posted 9 minutes ago
>No reply

Aww i feel bad for you OPie

Take a reply
>>
>>55351252
Thank you.
>>
>>55351299
Oh, i was just joking around but it seems pretty cool.
Im fairly new when it comes to programming but it reminds me of python, a lot, and i like the fact that it has a low memory footprint.
Will mess around with it, i just wish you made a sublime text plugin or something.
Well done OPie, keep up the good work.
>>
>>55351394
I spent a lot of time packing everything, so I'm glad to hear that. I personally want to shoot for it being under 5K of memory, but 64-bit pointers make that hard. Eventually, I want to try porting it to Arduino, where I've heard the pointers are 16 bits and that way you'd have a fair amount of room left.

As for plugins, I haven't done anything on that front because I've been hacking away at the core. I'd like to expand support for different stuff, like different ides and such over the next year now that I'm just about done fiddling with the core.
>>
>>55351464
>Eventually, I want to try porting it to Arduino

Shit, do that and you'll have my heart.
Im a fucking tard when it comes to programming software, but im fairly OK when it comes to hardware.
Again, nice job, it's a shame this board gives more attention to meme/shill threads than actual tech ones.
>>
What'd you go to school for?
>>
>>55351546
Computer networking, and then I never pursued it. I don't have a formal CS education: Entirely self-taught.
>>
It's cool and all OP but your frees are unchecked and thus unsafe. Look up Fibersteins lecture on Dynamic Memory System Coherency on the tubes
>>
>>55351534
Some people are actually talking about what I made, even if only for a little while. Things like this don't come around often, and really I'm fine as long as I get some excitement for what I'm doing.

For me, the Arduino is a huge selling point. I'm cramming stuff down harder, and I might reach a limit of what I can reasonably do soon. But I want to be able to say that I have the only interpreted language that works under that small of a situation. It's a huge technical win for me, the best kind of win.

In theory, with 16 bit pointers, you'd have to relinquish about 2K of what I believe is 8K of Arduino's memory. But if you're writing a small sketch then you shouldn't hit the memory ceiling.

I'm glad you're excited about it though, since it makes me feel better that chasing Arduino isn't just some crazy pipe dream of mine, and something possibly useful to another person.
>>
>>55351610
Huh. My understanding was that free of NULL was a no-op, except for very old platforms. I'll see if I can find that.
>>
This isn't smartphones
This isn't linux shitposting
This isn't windows shitposting
This isn't graphics cards
This isn't shilling
This isn't gaming shitposting
This isn't memes
This isn't Maki
This isn't Akari
This isn't e-celebs
This isn't one of the 5 milion generals
This isn't piracy shitposting
This isn't consumerism in general

It is, however, a nice project
>>
Do you like functional programming ? Do Lily has functional tools ?
>>
>>55351154
>static typed
deprecated
>>
>>55351154
What made you want to do this?
Just curious.
>>
>>55351610
They are, he's talking shit.

Also, dunno about the language. It seems to want to throw a bit of everything in the mix, not really a huge fan of that. Why have three ways to construct an object?
>>
>>55351790
Wrong quotation, I meant to say that free(NULL) is in fact a no-op according to the standard.
>>
https://github.com/jesserayadkins/lily/blob/master/src/lily_alloc.c#L6-L7

absolutely disgusting
>>
>>55351154
Make an Operating System running off of Lily entirely, i'll give you 10 years max. No cheating, write everything from scratch, including a kernel
>>
>>55351745
I like some parts of FP. I like monads insofar as using the type system as your ally. I LOVE the idea of eventually adding rank 2 polymorphism to the language just to say I did. I have a fair idea of how to do it, too, and simply haven't gotten around to it (I can treat forall'd types as unquantified, and restrict rank to 2 since 3+ is supposedly undecideable).

I like being able to map, select, and filter over collections. The collections API is borrowed heavily from Ruby's ideas.

You've got Rust-style enums which support exhaustive pattern matching.

But for the language? There's no monads, and typeclasses/traits are something I plan to get to in a coming 1 or 2 releases. I haven't done them yet because I wanted unify to be done right.

If you want immutable collections, however, you're going to be disappointed. That's one of the parts of FP that I don't like. I've spent a LOT of time making Lily's memory usage really low, and immutable collections go in the opposite direction of that.
>>
>>55351841
why
>>
>>55351561
>I don't have a formal CS education: Entirely self-taught.

Badass. This makes me not give a shit about any of your language's deficiencies. Compared to the vast majority of the people on this board, you're a fucking wizard. Keep at it. I should be going to bed, but this is a rare good thread and I want to be around for it.
>>
>>55351777
I'm writing a post on that that I'll be publishing tomorrow. A few things:

People complain a lot about PHP, but nobody ever writes an alternative that has templating built-in.

Nearly every statically-typed language is slow wrt the compiler and waiting around. I've kept going because Lily has an incredibly fast turn around time. I've tested parsing 2200 ish lines in about .022 of userspace time.

I also don't have a life, so this gives me something to do.
>>
>>55351856
robustness flies out of the window entirely
especially for embeddable languages, you want to report that shit back to your caller
libraries have no business calling abort()
>>
Hey, I think I saw this on HN. Pretty neat, nice work op.
>>
>>55351154
You know, don't listen to all the shit you'll probably get on here. The people criticizing your work are pretty much 100% useless NEETs that simply don't know what five years of work mean.

Really, the kind of consistency and discipline (even if you might not think that way about it) you need to even get a project like that done on your own is absolutely amazing.

Despite that, what I see on first glance looks pretty fucking cool.
>>
>>55351842
Woah, hold on there. I'm no Terry Davis.
>>
>>55351154
Reminds me of swift
>>
>>55351790
One is that the new method is just that, a method.

The second is a shortcut. If you say a(1) and a is a class, then it constructs a class. Done.

The third, piping, is a way of making sure that things flow from left to right.

Suppose you're executing a string. You've got this huge expression you're building up, but you forgot to write a print for it. So you do |> print and you're golden. It's useful for undoing nested parentheses: You can write x |> f |> g instead of g(f(x)). It's a simple trick, and it doesn't cost a lot to implement.

So that last example of piping to a class is just about showing how new really, really is just a method and not some special keyword with magic underneath.
>>
>>55351927
You probably did. I posted it there a few days ago.
>>
>>55351884
I just read thru the readme. This looks cool. And it's awesome you built your own language. So i saw it mentions apache, would I be able to use this with nginx as a php replacement?
>>
wrong board this is the graphics card board
>>
>>55352151
I don't know how nginx works, but I assume the answer is yes.

What's needed is to define a server package to bridge from Lily to nginx. Lily needs to know what POST, GET, ENV, and httpmethod are. It's possible to give Lily through the options, some sort of nginx struct pointer, if that's needed.

Some ancillary functions are needed, like server.write, server.write_literal and maybe one or two others. Later, header/cookie support would be needed.

But if that were done, everything else is in the core of Lily since there's no configuration file like you get with PHP.

Lily doesn't specifically depend on Apache at all, and the scripts get a server-agnostic representation of the important data. This allows a script to be ported from Apache to nginx once the backing mod_lily is done for nginx.

It's almost certainly possible, and the best part is that the script aren't hard-wired to know the internals of the server.
>>
beautiful senpai, does it have a standard lib?
>>
>>55352216
So far, no. The only non-core library is postgres. There's a lot of backend apis that need to be done, and those are going to take a month, two at the earliest.

For the moment, no, and likely not soon. I'm still not sure what I want and I'd rather have nothing right now than to have something I hate and which sucks.
>>
>>55351154
Hey op,
I have been planning out a programming language a bit (something to compile to assembly for gnu as), and was wondering if you have any important tips or resources you might want to share?
>>
>>55352324
It helps if you learn a few languages first, just because that might expand upon what you actually want to do. If I had a chance to do Lily all over again, there's a lot that I would have done different. A lot of the churn that happened was because I learned important ideas like FP, about Option, and bits of Scala/Haskell later on, so I had to rip a bunch of stuff out.

Build your debugging tools early on. Get comfortable with gdb. I wrote an opcode debugger that verified is this an emitter problem or a vm problem. Saved me tons of time. TONS. Make your debugging pretty. Being able to look at something easy and say "that's definitely X" is a cure worth tons of prevention.

Don't avoid writing stuff because you don't feel like it. That's nothing against you, but I didn't write a garbage collector for the longest time, and instead wrote a circle buster as an alternative. What I did was stupid and it cost me a lot of time. The gc took a week to do, and I've pretty much left it alone since.

There's something that I think Drepper wrote out there about struct packing. I might have the name wrong, but if you don't know about struct packing, learn it. It's incredibly useful, and a large part of how Lily boots in 6K instead of Lua's fat 20K.

Be vigilant about not letting crap build up. Once in a while go through your stuff and clean it. I made the mistake of not doing that, and now I've got a bunch of structures with crap in them.

Having some basic algorithms knowledge is going to help, but you don't need a lot. I don't have a lot myself.

Write a test harness like my pre-commit-hook that runs all of your tests once you can. Don't allow regressions, and you'll notice you're almost always stepping forward in quality. You fix it? You write a test for it, if you can.
>>
>>55352213
This sounds cool. I'll definitely play around with it. So as a php replacement would I be correct in assuming that lily would use less memory, be more secure, and perform faster than php?
>>
>>55351154
I'm not a fan of the |> syntax but this is pretty impressive.
>>
>>55352459
> Less memory
Lily's memory usage is a speck compared to PHP.

php -r '', an empty script, takes 3megs of dynamic memory to even get started.

I can literally import every passing test in Lily (creating a bunch of classes, closures!, types, and so on) and use less memory than PHP even uses to boot (it's about 500K to import almost all of the passing tests).

So in terms of memory usage, you absolutely will not find a better interpreted language. It beats even Lua by a landslide.


For security, Lily represents ENV, POST, and GET variables as being Tainted[String]. It's possible to do bad things in Lily, but the type system makes it very hard to do them.

Performance-wise, I can't say for sure since I haven't done many benchmarks. But it seems that when I do comparisons here and there, it's between Lua and Python.

Right now, I'm working on optimizations that are low-hanging. Once I'm done, I'll be able to have a recursive fibonacci that's faster than Lua's.

So YES, yeah, and probably.
>>
>>55352543
Would you prefer this syntax :^)
>>
OP let me piggyback off your thread since I'm not that far to start my own, but I'm creating a programming language as well:

https://github.com/corazza/monac-scala

In short:
>compiled, low-level
>no garbage control, statically proven safe
>functional style
>expressive type system
>>
>>55352637
Hey, I love looking at other languages, so I don't ind at all. In fact, I think I'll take a peek, and tell you what I think.
>>
>>55352637
Forgot to add, it's a mix between Rust and Haskell, which should earn me maximal meme points here
>>
>>55352581
>using the smiley with a carat nose
>>
File: 4L_5vR2O7n0.jpg (207 KB, 900x675) Image search: [Google]
4L_5vR2O7n0.jpg
207 KB, 900x675
>>55352558
Nice. This is so cool. A language I heard about in a /g/ thread that i'm going to try to use as a php replacement in some web dev projects i'm working on. If I get lily working for some of my use cases i'll hit you up on github with links and/or some documentation for other users like "how to do x with lily" etc.
>>
>>55352637
So like, what are you trying to do with this? Are you hoping for a serious language, or more just trying to make something for fun?

So far it seems like bits of Haskell and Scala, with borrowing from Rust. So it's interesting.
>>
>>55352667
I would really like that. Any experience you have with the language, for good or bad, would be interesting to hear about.
>>
>>55352689
>So like, what are you trying to do with this? Are you hoping for a serious language, or more just trying to make something for fun?

Well it's really interesting to work on the project alone and I'm learning quite a bit, but once I'm over some threshold, I would definitely like to see the language used and get other contributors.

But I'm pretty far from that point at the moment.

>So far it seems like bits of Haskell and Scala, with borrowing from Rust. So it's interesting.

I'm curious, which bits of Scala do you see?

I mean the compiler is programmed in Scala, but the language didn't take much influence from it.
>>
>>55352865
Expression blocks, the braces, println, Some and None versus Just and Nothing.

For printing, are you having things derive a show-like entity, or is it just a toString/automatic and internal?

I think if you're wanting to get serious adoption, regardless, you'll need some niche where your language really, really excels. For Lily, that's memory usage, wherein it beats everyone else hands down.

But really, the journey alone can be an amazing thing. I certainly feel like I'm better for having made Lily since I've learn and grown a lot from it.
>>
>>55352934
>Expression blocks, the braces, println, Some and None versus Just and Nothing.
Shit I forgot about the features of my own language

But yeah, on anything other than syntax and some naming conventions (which are think are superior in Scala), not that much influence.

The syntax is a combination of the good bits from Scala and good bits from Haskell, that's true, but the semantics is Haskell+Rust.

>For printing, are you having things derive a show-like entity, or is it just a toString/automatic and internal?

The show way: https://github.com/corazza/monac-scala/blob/90a4afba45f61b27f963ab0cd2bdcc8fa50d9c9a/standard-library/prelude.mona#L43

>you'll need some niche where your language really, really excels

Well that's certainly one way. But I think making an interesting-enough language that people want to use because of its general features is another.

But I would prefer Mona to be low-footprint and performant, it's another pipe-dream about a C++ replacement really.

Except it's functional. So that could be my niche: Rust users who would like an actually functional programming-style language.

>For Lily, that's memory usage, wherein it beats everyone else hands down.

I mean, really? That sounds pretty fucking amazing

>But really, the journey alone can be an amazing thing. I certainly feel like I'm better for having made Lily since I've learn and grown a lot from it.

Totally feeling you here! Learned so much, this is my largest project yet.
>>
This is amazing! Keep spreading it. I surely will!
>>
>>55351154
Will check this later, bumping for now.
What made you decide on a name?
>>
>>55353062
>Rust users who would like an actually functional programming-style language.
for doing shit on the web? you got me hooked
>>
are you ready for SJW's to start doing find+replace on your code hunting and pecking for "problematic" language?
>>
>>55354140
Hm well Mona is a general-purpose language with useful abstraction facilities, so you could certainly do some web dev with it in theory. But it's aimed at systems/application programming.
>>
>>55351619
>I'm glad you're excited about it though, since it makes me feel better that chasing Arduino isn't just some crazy pipe dream of mine, and something possibly useful to another person.
+1 on that
>>
>>55354162
pretend to be illiterate please
>>
>>55354279
i just told 20 friends about the language though. these are guys who write compression software for a hobby, not sjw posers.

was just asking

and yeah, Lilly looks awesome, stay based op
>>
>>55354162
I don't think there's anything offensive in there.
>>
>>55354279
?
>>
>>55354055
My original ideas were things like Meteor, Hurricane, Tornado, etc. I didn't have any good ideas for a name.

My mom mentioned that she liked the name Lily a few times. I figured, "Yeah, why not?"

I've grown to like it.
>>
>>55354449
Lily sounds graceful.
>>
>>55354449
Heh I have a story about my name as well. I was blazed af in a wax figure museum in Amsterdam, thinking about how I needed a name for a language. And wham, right before me there is a wax sculpture of Mona Lisa. So Mona it was!:D
>>
>>55351154
how does it feel to have wasted 5 years of your life making something that has no value to anyone and never will
>>
>>55354633
I've built a garbage collector from scratch, I built a working register-based vm, I build a whole language, I made a type system comparable to Scala and Rust wrt inference, I've beaten every language hands down wrt memory usage, and I made something cool called scoop types to allow creating a tuple merge and tuple push function.

So maybe it never gets seriously used. I still learned a lot from it.
>>
Bumping for potential.

Also, I might get a lot of flack for this but try posting this to Reddit.
>>
>>55351154
Looks really cool OP, especially as there aren't too many interpreted but statically typed languages out there.

If possible, please make it as embeddable as possible, meaning:

- allow multiple vm instances
- allow to only include the parts of the standard library that has no harmful IO to allow untrusted macros
- separated compilation and run functions
>>
>>55354633
Ur wrong fagget, I'll possibly use this or Wren in a project about half a year from now.
>>
>>55354926
I've got an article already written down, I just need to hit publish and shoot it off to /r/programming and HN. I'm waiting until about 8 o'clock my time, so it'll get more traction. I'll probably do a casual ama this week too. Reddit gets a lot of hate here sometimes (some valid, some not), but /r/programming has been pretty good about feedback in the past.

HN has been good at getting traffic, but maybe I just haven't posted there enough to get interest in the language.

But I'm posting here because there's a different crowd here versus HN or Reddit. Some of you guys are pretty cool, and I got some interest in the language. I like writing about what I've done because I've done some neat things.

I hate the captcha here though.
>>
>>55354930
> allow multiple vm instances
Already done.

> no harmful io
I've thought of moving files to sys, and allowing runners to say they don't want sys. But I'm scratching my head as to what that brings. My intended use cases are game dev, microcontroller dev, server side scripting, and standalone scripting.

> sepaarated compile and run
Still working on the api, and agreed. Internally it's possible, it's just not exposed. There's a definite use to it: Someone might want to run multiple chunks to build them up, and then send it all at once.
>>
>>55352637
>>55351154
This is cool as fuck
How much does formal language theory come into this? OP says he's self taught
>>
>>55355126
(op) I've never written code in production, and I taught myself everything. I don't know anything about language theory. It's more of what I like, and stuff that doesn't fit what I want.

I just read what everyone else does, and figure out what makes sense to me.

The only time I had to read theory kind of stuff was when I added generics. I went to Scala school of generics and crammed hard. I later went to wikipedia and found out about quantification.

I'll occasionally read more theory kind of stuff, like about bivariance. I understand the typing behind it, but I can't read the math for the life of me.

I just do whatever.
>>
>>55352581
>>55352657
>using the syntax with a carat nose
>>
>Speed between Python and Lua
why
>>
>>55355492
There are two optimizations that need to be employed:

One I call exit blasting. It's this idea that when a function exits, it derefs every register that needs it, and only those ones. Certain functions, like fibonacci, can skip it entirely. Currently, functions that are entered blast all of the registers they may need, and that's both slow and unnecessary.

Registers are not being reused, as they should be. It's an easy fix that I've never gotten around to, as I've never done that much benchmarking. Fibonacci (recursive) uses 8 registers, but should really use I think 3 or 4. That makes a difference.

I've done basic tests with what would happen if both were done. On fibonacci, at least, Lily can beat Lua in performance.

The performance is really a rough, pessimistic estimate. I fully expect that, post optimization, Lily can beat Lua all around in performance.
>>
>>55351154
>between Python and Lua
Is Lua faster or slower than Python?
>>
>>55355584
could include a "closed function" notation in the definition that says whether it needs blasting at all
Or rather you could apply the same "closed" principle to all blocks- bscly saying if it's standalone or not
>>
>>55355632
It's going to be faster than Python, but not as fast as Lua quite yet.
>>
Looks uber cool
>too bad you named it after worst girl
>>
>>55355749
BEST GIRL IN THE GAME
>>
>>55355083
>Already done.
Pretty cool!

>I've thought of moving files to sys, and allowing runners to say they don't want sys. But I'm scratching my head as to what that brings. My intended use cases are game dev, microcontroller dev, server side scripting, and standalone scripting.
Generally security, in case an application gets documents with scipts in it. You won't have the whole MS Word macro virus scenario. Regarding your use cases: As an example, you could have a multiplayer game which downloads scripted maps from the server without having to worry that the scripts messes with your computer.

>Still working on the api, and agreed. Internally it's possible, it's just not exposed. There's a definite use to it: Someone might want to run multiple chunks to build them up, and then send it all at once.
It also allows for better error reporting. For the game example, you can compile your scripts at loading a level and should anything break, directly show a warning instead of some hidden, cryptic in-game console message.
>>
>>55355681
That's part of it too. Right now, the -entering- function has to do the blasting. If I swap it around, some of the functions like fibonacci don't have any refcounted values. So they wouldn't need to blast as they exit, they can just exit.

The point of blasting registers is that I can do comparison operations faster. Comparisons can just throw integer values into a register, and not care to check if the register once held something refcounted or not. So the blasting is absolutely necessary. It's more about making it smarter.

You mention blocks though, which is a bit confusing, as I'm thinking of the vm where blocks don't exist.

There's still some neat stuff I can do for optimizations, notably computed gotos which might net me some extra speed.
>>
Stupid and useless.
>>
>>55351154
>Speed between Python and Lua
Mean question: Does that count the important parts, like data structure density, language interop performance, memory handling or are the benchmarks only numerical benchmarks for scenarios that are better covered by languages like Fortran anyway?
>>
File: 7182625.jpg (14 KB, 400x400) Image search: [Google]
7182625.jpg
14 KB, 400x400
>>55351154
Why are you a nu-male?
>>
>>55355796
some code {.......} in whatever form appears as the operation of functions, as a part of if statements, loops and all the rest.
I'm simply suggesting that depending on how you could set up such a indicator- you may be able to include the practice of selective blasting on a block of code regardless of whether it even has a conditional or loop or whatever prefacing it.
Of course that does depend on whether such a structure is permitted to live on it's own.
>>
>>55355726
Ah cool. Haven't looked at it yet but if it can become a higher-level language for arduino/microcontrollers that'd be a cool niche.
>>
>>55352558
>Tainted[String]
I really love when you can express things like that through the type system. It was something divine, expressing such high level concepts, when I first twiddled with Haskell.
>>
Have you posted this on hsckernews? I think its cool Op
>>
>>55355911
someone has, now
>>
>>55352558
>fibonacci
I wonder why that is often used for benchmarking, especially in context of interpreters. It shows nothing about C-API performance and remarkable data structure performance which I'd wager most important in interpreted languages.

I mean, it's sure nice to know that calculations aren't unnecessarily slow, but interpreters can not really come into the range of performance that one would require to write computation intensive stuff anyway.
>>
>>55355856
I can't say, because I haven't done much benchmarking yet. I've always been more focused on just getting the core to work. It's not going to fall over for anything non-numeric though, as the structures are pretty dense, and there's been some optimization wrt say class member access, closure item access, etc.

I think this is a good sign I need to get to doing benchmarks, like, soon.
>>
>>55355939
SO THAT'S WHAT'S HAPPENING.

For the last half an hour or so, the stars have been climbing and I've been kinda wondering what gives.

Whoever did that, thank you.
>>
>>55355992
Looking forward.
>>
>>55351154
what resources did you use to teach yourself?
>>
>>55356625
I go feature by feature. If I need to learn about exceptions, I check(heh) every exception related resource that there is for every language that I know how to read. Generics? Time to read more about the strengths and the pitfalls until something just clicks. I sample everything until I find something that I like or an idea strikes.

I had to google "how do I make a syntax tree" when I first created the ast pool. I had to ask wikipedia how to use linked lists until the first year passed, because I kept screwing those up.

I don't go to Stack Overflow that often, but occasionally it's useful. That's where I found out how to do closures (someone wrote how Scala did it, and I copied the idea. The idea being to write shadowing reads before opcodes, and shadowing writes afterward).

Other times I get weird ideas and roll with it. That's how scoop types came about.
>>
OP. Why aren't you working. Seriously.
>>
>>55357024
I've been trying to get a job, and haven't had much luck at it. I've got more "we don't think you're a good fit" emails than I can count. Don't even get interviews, just "good luck!" over and over.

It seriously hurts.
>>
>>55357134
wth. What are you applying for?
>>
>>55357165
Everything I see. Software dev, QA, Test, Java, Python, C, embedded, Web, Ruby.

What really hurt was when Hired flat out told me that "none of our people are interested, no thanks" the last time I tried to update that page.
>>
>>55351154
>actual technology discussion
Y E S
E
S
nice project, OP
>>
>>55357225
>Hired
garbage

It is a tough battle. I don't know what to tell you. Hopefully this exposure gets you somewhere. Also, update your social media. Using "stuff" is unprofessional as fuck.

Keep at it. Talent is a burden not a responsibility.
>>
>>55357334
I'm trying to stop myself from it, but sometimes I lapse and forget to not do that. My social media is, well, I don't really know what to put there is the problem.

I'm confident that I'll succeed, and that it's more a question of when.
>>
>>55351154
Why waste 5 years on such a project? You could write a simple lisp interpreter or even a jit compiler in a month and be done with it.
>>
>>55352543
I agree, a keyword would be more appealing imo, or an arrow like =>. Despite that it's a neat little ugliness that sets the language apart, not sure I've every seen that sort of syntax outside some fucked up bash script
>>
https://lobste.rs/s/4luicd/lily_interpreted_language_with_focus_on

I posted this on lobsters, there are some comments there. OP, if you'd like to respond, let me know and I'll hook you up with an account.
>>
>>55357416
It comes from F#.
>>
>>55357403
Because doing that is shit, this i can take seriously, a lisp dialect is like making a meme.
>>
>>55357372
I was responsible for the cleanliness of area X. This allowed me to participate as part of a team since I was able to interact with other co-workers and customers. I sought out new opportunities internal by providing backup maintenance outside my normal job scope. Fixing Y was a more attractive part of my job because it allowed for some free thinking problem solving and offered me the opportunity to challenge myself in new ways.

My shit is generally cheezy as fuck, but it fills a page.
>>
>>55357496
If I were to restart the computing industry from scratch I would do it with lisp. It is good enough, if not better than most "modern" languages.
>>
>>55357491
Hello and thank you! I'll begin monitoring that immediately.
>>
>>55357491
Or...I won't actually, because you need a referral to get in. Which sucks because the one comment there so far is incorrect (the poster is thinking of reconstruction, ala Haskell). I don't support that because I like being able to look at a function and know what I give it and what I get out of it. Sure, it's longer, but I like having each function be an endpoint, so to speak.

As for lambdas, I have a trick where type information gets obtained in emitter, and then emitter hands control down to parser. That continues in a loop so that lambdas have full type information.
>>
>>55351619
Op best of luck. Keep us updated, this seems like interesting tech being made.

Maybe one of us will write something for you when you release it
>>
At these times I wish I knew as much about compilers as the people ITT.
>>
>>55357698
I got a dot release in a couple of weeks, and I'll be posting that here as well as in other places.
>>
>>55357534
Not even OP, but: No, lisp is shit and everyone from the ivory tower who things the world would be better if common joe programmed in lisp a delusional faggot. And ironically the "good qualities" make it shit.

Metaprogramming for example is a necessary evil in the best case and cancer in the average case. And with macros becoming popular, you can bet on the cancer part, as you will likely have sooner or later the PHP of meta libraries and it will be cancer over your face.

So are most dynamic features to exist.

Also, JIT are shit. They are the worst compromise between interpreter and PGOing compiler, a money grave and potential security hole.

When designing a language, it should be clearly designed for interpreter XOR compiler and shit that should be avoided is having run time in the compilation and compilation in the run time.
>>
>>55354633
I'm going to try using it as a php replacement. If it works for my use cases I'll use it all the time. Idgaf if anyone else uses it.
>>
>>55354497
Yea Lily sounds elegant. I like it even though it's feminine and i'm a misogynist. It's a much cleaner and nicer sounding name than names Rust, Haskell, or javascript.
>>
>>55355858
He doesn't look like a new male. He looks like a computer geek.
>>
>>55357890
I like you already. Whatever the result of your experience, I'd like to hear about it.
>>
>>55357635
What's your email? I'll shoot you a referral
>>
Can I use this language to install gentoo?
>>
>>55352543
I love the idea of pipes in this Lang op.
>>
>>55358299
Username is my github name, at gmail.

Much appreciated.
>>
>>55358549
No problem. Sent.
>>
>>55351154
I was looking to embed Squirrel into my next project (I used it roughly 10 years ago and it worked well back then), but after reading some of Lily's documentation, I'm going to give it a serious try soon, it looks really promising.

Can it be compiled in Windows using MinGW? I do cross-platform stuff (Linux, Windows) and I use GCC on every platform and MinGW has been my go-to Windows compiler for almost 15 years now.
>>
>>55358710
You may want to wait until the apis are finalized, as there's going to be some shuffling in that area within the next month.

I don't use Windows often, and I don't have Appveyor test for MinGW (I don't even know how I'd do that).

Lily isn't that fancy though. Visual Studio works. Most of Lily is plain C99, except it uses anonymous unions. You probably could get it to work, but I don't know.
>>
>>55358959
I can see it uses CMake and it works fine with MinGW, so I'm hopeful.
>>
Neat project you got there OP. Sure wish /g/ had more threads like these; I really hate this place, but I can't leave.
>>
OP you should use <- instead of = for variable assignment
>>
I really want to do something like this one day.

But I'm so lazy.
Good thread regardless, OP.
Can't wait to see what comes of it.
>>
File: emulation.webm (3 MB, 624x352) Image search: [Google]
emulation.webm
3 MB, 624x352
>>55351561
>Entirely self-taught.
Well shit. I taught myself Python and C++, but only through very introductory books. I know several data structures, but that's about it. Really lost on where to go now. I guess I could try networking, polishing some algos, or something along the lines.
>>
>>55351154
>https://github.com/jesserayadkins/lily
this looks like a bastard javascript and ruby child with hints of haskell
>>
>>55351154
It's shit
1: You do not write a programming language, you write implementations.
2: Programming languages do not have speed so it can't have "Speed between Python and Lua"
3: A language can't be interpreted
4: Interprenters are shit compared to compilers. Not to mention that jit interpreters are essentially compilers.
5: >>>cmake
6: >abort on malloc failure
7: It does not seem to be jited so I doubt the speed is even close to the only python and lua implementations that matter.
>>
>>55351154
>gc
into the g it goes
>>
>>55361037
8: >Automatic memory management through gc + refcounting
>>
>>55361037
>: A language can't be interpreted
explain to a noob please
>>
>>55361037
>3: A language can't be interpreted
lolwat
>>
>>55361104
There are no interpreted languages, this is because this is a property of the implementation, not the language itself.
>>
>>55361215
https://en.wikipedia.org/wiki/Interpreted_language

?
>>
>>55361229
And this is incorrect.
>>
>>55361249
And you are retarded.
>>
>>55362201
No, you are simply ignorant.
>>
>>55351154
does it have python's god awful significant indentation?
>>
>>55362315
No.
>>
>>55351154
looks like rust
your obviously a saw
>>
>>55351154
cool>>55351154
>>
>>55351154
cool
>>
File: 1337964280552.jpg (24 KB, 484x530) Image search: [Google]
1337964280552.jpg
24 KB, 484x530
>>55351154
I haven't checked it OP but have a bump, better than any >hey guise what GPU/PSU/HARDWARE do I buy
>>
How do you make a "Hello World" program with this language? (Also, if it's +7 lines long is shit)
>>
>>55364734
Not op but It's literally one line

Save file as helloword.lly

In file write:

print("hello world")


That's it
>>
Nice OP, good luck.
>>
>>55364734
>7+ lines long

Don't worry, it's not java.
>>
>>55351154

My question to you is what is its gimmick?
>>
>>55366059
Very small amount of dynamically allocated memory, easy to setup, flexible (scripting or gamedev or standalone), and safe.

Also, OP here, it's getting a little late for me now. This has been a blast, but it's time for me to unwind. To whomever set this off and posted this on HN, I owe you a lot.
>>
>>55351619
I'll star and fork OP. This looks really cool. Is it possible to compile for system level development? I'd need the interpreter at a low memory point wouldn't I?
Thread replies: 157
Thread images: 5

banner
banner
[Boards: 3 / a / aco / adv / an / asp / b / biz / c / cgl / ck / cm / co / d / diy / e / fa / fit / g / gd / gif / h / hc / his / hm / hr / i / ic / int / jp / k / lgbt / lit / m / mlp / mu / n / news / o / out / p / po / pol / qa / r / r9k / s / s4s / sci / soc / sp / t / tg / toy / trash / trv / tv / u / v / vg / vp / vr / w / wg / wsg / wsr / x / y] [Home]

All trademarks and copyrights on this page are owned by their respective parties. Images uploaded are the responsibility of the Poster. Comments are owned by the Poster.
If a post contains personal/copyrighted/illegal content you can contact me at [email protected] with that post and thread number and it will be removed as soon as possible.
DMCA Content Takedown via dmca.com
All images are hosted on imgur.com, send takedown notices to them.
This is a 4chan archive - all of the content originated from them. If you need IP information for a Poster - you need to contact them. This website shows only archived content.