🦋 Welcome to Raku! raku.org/ | evalbot usage: 'p6: say 3;' or /msg camelia p6: ... | irclog: colabti.org/irclogger/irclogger_log/raku Set by ChanServ on 14 October 2019. |
|||
summerisle | oh man, the raku indent rules and lexers are basically 1:1 identical to css-mode | 00:02 | |
honestly, it isn't even indentation that I have the biggest issues with in raku-mode, it's werid fontlock bugs | |||
like not realizing that some text is POD | |||
until you go mess with it | 00:03 | ||
00:17
rindolf joined
00:21
mowcat joined
00:54
pecastro left
01:22
hythm_ left
01:36
aindilis` left
01:37
aindilis joined
01:39
gordonfish left
01:40
sortiz left
01:42
gordonfish joined
01:51
gordonfish left,
gnufr33dom joined
01:56
gordonfish joined
01:57
guifa left
01:58
guifa2 left
02:16
gordonfish left
02:33
nevore joined
02:38
wamba joined
02:42
gnufr33dom left
02:45
gnufr33dom joined
|
|||
db48x | really good indentation and syntax highlighting requires writing a full and complete parser for the language | 02:48 | |
02:48
gnufr33dom left
|
|||
db48x | most language modes in Emacs don't go that far | 02:49 | |
02:50
kvw_5_ joined
02:53
kvw_5 left
|
|||
db48x | or in any editor, for that matter | 02:53 | |
02:54
mad_hatter joined,
mad_hatter left
02:55
mad_hatter joined
02:58
gnufr33dom joined
03:01
mowcat left,
mowcat joined
03:07
mowcat left
03:09
nevore left
03:11
nevore joined
|
|||
summerisle | eh, it just needs to be good enough. CPerl mode has good indentation, c-mode has good indentation, and ruby-mode has good indentation | 03:16 | |
03:26
nevore left
03:36
gordonfish joined
03:51
nevore joined
04:16
nevore left
04:22
nevore joined
04:24
nevore left
04:25
aindilis left
04:26
aindilis joined
04:33
nevore joined
04:36
nevore left
04:42
nevore joined
04:46
nevore left
04:57
wamba left
05:01
marcusr left
05:02
marcusr joined
05:20
guifa2 joined
05:28
Doc_Holliwood joined
05:43
parabolize left
05:59
leont_ left
06:36
aborazmeh joined
06:41
ensamvarg195 joined,
ensamvarg195 left
06:42
ensamvarg joined
06:56
wamba joined
07:25
guifa2 left
07:38
jmerelo joined
07:59
DiffieHellman left
08:01
DiffieHellman joined
08:09
Garbanzo left
08:12
aindilis left
|
|||
jmerelo | releasable6:status | 08:16 | |
releasable6 | jmerelo, Next release in ≈10 hours. 1 blocker. 22 out of 134 commits logged | ||
jmerelo, Details: gist.github.com/d5fc22e3b0ac56be09...cd06c0c9da | |||
08:19
ufobat__ joined
|
|||
jmerelo | The deadline for Google Summer of Code applications has passed, our application is in. You can still propose new projects, or join one as a mentor perl-foundation-outreach.github.io...021-ideas/ | 08:30 | |
08:32
Doc_Holliwood left
|
|||
sena_kun | \o/ | 08:43 | |
jmerelo++ | |||
08:59
synthmeat left
09:00
synthmeat joined,
synthmeat left
09:01
synthmeat joined
09:03
aborazmeh left
|
|||
cetjs2 | мяу | 09:07 | |
09:17
gnufr33dom left
09:33
Scimon joined
09:52
ufobat__ left
|
|||
jmerelo | sena_kun: let's see if we're luckier this year than last one... | 09:59 | |
We will know by March 9th. | |||
10:07
aluaces left,
Sgeo left
10:10
bdju left,
bdju joined
10:14
Boo3161 joined,
Boo3161 left
10:16
aborazmeh joined
10:22
natrys joined
10:30
jmerelo left
10:40
linkable6 left
10:42
linkable6 joined
10:50
aluaces joined
11:04
pecastro joined
11:16
Discipulus joined
11:25
aborazmeh left
11:28
Doc_Holliwood joined
11:29
Kaiepi left
11:32
Kaiepi joined,
aborazmeh joined
11:33
Kaeipi joined,
Kaiepi left
11:44
wamba left
12:10
Kaeipi left,
Kaeipi joined
12:13
ab5tract joined
12:16
wamba joined
12:19
leont joined
12:20
Doc_Holliwood left
12:35
aborazmeh left
12:48
aborazmeh joined
12:54
Black_Ribbon left
12:59
squashable6 left
13:01
squashable6 joined
13:30
aborazmeh left
|
|||
xinming_ | releasable6: | 13:36 | |
releasable6 | xinming_, I cannot recognize this command. See wiki for some examples: github.com/Raku/whateverable/wiki/Releasable | ||
xinming_ | releasable6: help | ||
releasable6 | xinming_, status | status link # See wiki for more examples: github.com/Raku/whateverable/wiki/Releasable | ||
xinming_ | releasable6: status | ||
releasable6 | xinming_, Next release in ≈5 hours. 2 blockers. 22 out of 134 commits logged | ||
xinming_, Details: gist.github.com/cb2e0f63f1bbae674c...b63a402d66 | |||
13:44
xelxebar left,
xelxebar joined
13:52
DiffieHellman_ joined,
DiffieHellman left
13:55
DiffieHellman_ is now known as DiffieHellman
13:56
ab5tract left
14:11
domidumont joined
14:20
Scimon left,
masak_ is now known as masak
14:21
brtastic joined
|
|||
masak | summerisle: I think I agree with db48x on this one. you kind of need to have a faithful parser to do it right. | 14:23 | |
well, hm. I guess it depends what losses you consider to be acceptable | 14:24 | ||
there's something to be said for a syntax that's so easy to parse that getting it right is almost automatic. but Perl and Raku were never such languages. | 14:25 | ||
it's hard to be such a language unless you really try. Lisps and Forths often are. maybe Smalltalks too. | |||
14:43
ajdplaysalto joined
14:44
ajdplaysalto left
14:45
aborazmeh joined
14:51
ab5tract joined
14:54
parabolize joined
14:56
domidumont left
14:57
guifa2 joined,
domidumont joined
15:10
ab5tract left
15:43
Doc_Holliwood joined,
wamba left
|
|||
guifa2 | arg | 15:53 | |
15:54
domidumont left
15:56
domidumont joined
|
|||
guifa2 | when you have sub MAIN (@files, :$extra) { … } you *have* to use "--extra fileA fileB" and can't use "fileA fileB --extra" | 15:56 | |
16:03
domidumont left
16:04
domidumont joined
|
|||
codesections | guifa2: is that controlled by :named-anywhere, or is it always true? | 16:20 | |
guifa2 | it's always undefined. *@files (meant to type the slurpy there) gobbles it up as an array element | 16:21 | |
so `raku script.raku fileA fileB --extra` gives me @files = <fileA fileB --extra> | |||
codesections | Oh, yeah. I think that's pretty much unavoidable, unless you guess | 16:22 | |
which then gets very bad if you have pathological filenames | 16:23 | ||
./--extra | |||
(iirc, Python's argparse guesses, which is very nice right until it isn't) | 16:24 | ||
16:25
dataangel joined,
zxcvz joined
|
|||
guifa2 | Yeah, in this case, there's no guess work to worry about, all the real files start with <alpha> ** 2 | 16:28 | |
is there any way to control the threading with hyper for @foo { … } ? | 16:29 | ||
codesections | I just meant for argument parsers in general, though | ||
guifa2 | @foo.hyper(:1batch, :4degree).map: { … } feels a bit less declarative I guess | ||
MasterDuke | add an e.g, `.hyper(:4batch)` | 16:30 | |
xinming_ | releasable6: status | ||
releasable6 | xinming_, and I oop! Backtrace: gist.github.com/9a93ea0796c12b3c26...52a6f19152 | ||
16:31
wamba joined
|
|||
AlexDaniel` | interesting? | 16:31 | |
sena_kun: ↑ do you know why that may be? | 16:32 | ||
or is it just a bug in the bot? | 16:33 | ||
MasterDuke | because github.com/rakudo/rakudo/wiki/ChangeLog-Draft has two `New in 2021.02:`? | ||
guifa2 | MasterDuke: for serializes HyperSeqs. | ||
m: my $time = now; for (1..4).hyper(:1batch, :4degree) { sleep 1 }; say now - $time; | 16:34 | ||
camelia | 4.0098883 | ||
MasterDuke | yeah, you need `hyper for`, but then the extra .hyper if you want to set parameters | 16:35 | |
guifa2 | m: my $time = now; hyper for (1..4).hyper(:1batch, :4degree) { sleep 1 }; say now - $time; | ||
camelia | 1.070058 | ||
guifa2 | oooooh | ||
the double hyper is … inelegant but it works lol | |||
cetjs2 | what do I debugging raku programs? | 16:36 | |
MasterDuke | there is a debugger. the comma ide makes it a bit easier to use | 16:37 | |
cetjs2 | MasterDuke, What ide for raku is it?\ | 16:38 | |
MasterDuke | commaide.com/ | 16:39 | |
16:54
domidumont left
|
|||
andinus | whats the difference between #= and #| ? | 16:56 | |
sub MAIN ( #= doc and #|doc | |||
guifa2 | #= sets the doc to the previous declarator | ||
#| to the next | |||
andinus | ah i see, what's recommended ? | 16:57 | |
guifa2 | (maybe we should have gone with #← and #↓ haha) | ||
I use both actually | |||
#| A sub that does X | |||
sub foo ( | 16:58 | ||
$a #= the first | |||
$b #= the second | |||
) | |||
+ a comma after $a for proper syntax | |||
andinus | hmm this approach looks better | 16:59 | |
emacs doesnt re-organize #= properly though, #| it does well | |||
i mean re-indent | 17:00 | ||
guifa2 | At the end of the day, whatever reads cleanest is what's best. And that can change sometimes for different things | 17:01 | |
grrrr. $lock.protect: { callsame } seems to call … actually I don't know what it's calling but it's not working :-( | |||
sena_kun | oops | 17:11 | |
releasable6, status | |||
releasable6 | sena_kun, Next release in ≈1 hour. 1 blocker. 134 out of 134 commits logged | ||
sena_kun, Details: gist.github.com/5fb036b4c4b087ef08...2859cece86 | |||
17:32
squashable6 left
17:33
squashable6 joined
17:41
Kaeipi left
|
|||
codesections | wait, why in the world does IO::Spec::QNX exist? Was someone putting Raku in a _car_? | 17:42 | |
masak .oO( still preferable to putting it in a cdr ) | |||
codesections | (If so, they're my kind of crazy) | ||
17:43
Kaiepi joined
|
|||
masak | m: say "I just realized I don't even remember what 'm:' stands for, and yet it's still ingrained" | 17:45 | |
camelia | I just realized I don't even remember what 'm:' stands for, and yet it's still ingrained | ||
17:45
aborazmeh left
|
|||
masak | maybe it stands for 'moar' | 17:45 | |
masak .oO( siempre maz ) | 17:46 | ||
tadzik | alpha: say "are you still there?" | 17:48 | |
:') | |||
masak | tadzik \o/ | 17:52 | |
and... what the heck is an alpha? :P | 17:53 | ||
tadzik | masak! \o/ | ||
masak | besides the Bad Guy (kinda) in Dollhouse? | ||
tadzik | hmm, maybe I misremember the name. But before nom there was the previous rakudo, and the one before had a grammar engine that did things that the pre-nom rakudo did not, iirc | ||
maybe it was called differently | 17:54 | ||
masak | no, that sounds right | ||
tadzik | github.com/rakudo/rakudo/tree/alpha | ||
codesections | and nom is New Object Model? | ||
masak | the price of constant progress is premature obsolescence, I guess | ||
codesections: yep | |||
codesections: pro tip: never call anything "new" | |||
tadzik | :P | ||
masak | you'll end up regretting it | 17:55 | |
tadzik | you can just keep adding -er postfix forever | ||
codesections | (it took me a while to figure out what a nom_regression was the other day) | ||
tadzik | like with the power efficiency ratings, that go up to A but then there's A+, A++, A+++... | ||
masak | case in point: the "New York Times". should've just gone with the "York Times" | ||
I coulda told them that | |||
codesections | Or more news on the front | ||
masak | codesections: second series Doctor Who | 17:56 | |
AlexDaniel` | the actual pro tip is “never change the default branch to something else, wtf” | ||
masak | 19 'New's | ||
codesections | plenty of novels have had a New New York | ||
17:56
aluaces left
|
|||
masak | AlexDaniel`: ah, you mean like changing `master` to `main`... | 17:56 | |
tadzik | AlexDaniel`: to be fair these days a valid question is "something else than what?" :> | ||
I'm glad I never did my master's degree, that would've been so awkward to rename now | 17:57 | ||
masak .oO( just tell me plain: are you against slavery, or what? ) | |||
tadzik: clearly should've been called a "main degree" | |||
codesections | what college is it that has a the New School that's very old? | ||
AlexDaniel` | does github still default to main, or whatever it is? | ||
tadzik | it might. I remember opting in to remaining on 'master' | 17:58 | |
masak | AlexDaniel`: GitHub, and Git as well | ||
AlexDaniel` | ooooh | ||
tadzik | hmm | ||
masak | it's a fairly wide-reaching change | ||
AlexDaniel` | interesting | ||
masak | I'm actually not opposed to it as much as... rolling my eyes | ||
look | |||
AlexDaniel` | if they called it “develop” it would've been a bit easier :') | ||
tadzik | my git creates 'master' but warns | ||
hint: Using 'master' as the name for the initial branch. This default branch name is subject to change. | 17:59 | ||
masak | tadzik: ah, that might be it. about to change. | ||
codesections | it seems like an easy enough default to change for new repos | ||
AlexDaniel` | new repos. | ||
masak | here's the thing. I believe in not making people uncomfortable. needlessly. | ||
tadzik | I'm glad that will never be a problem for me | 18:00 | |
AlexDaniel` | tadzik: haha | ||
codesections | (I went ahead and changed my default for creating new ones) | ||
tadzik | because since github uses the world "collaborator", and in my cultural circle "collabolator" historically means "collaborates with nazis" so I cannot be a github collaborator without my ancestors rolling in their graves | ||
masak | I'm even fine with staying away from using words that tend to make people uncomfortable. | ||
ok, tadzik is faster on the trigger :) | 18:01 | ||
tadzik | I've practiced this rant :P | ||
masak | tadzik: you sir, are an enabler. shame on you :P | ||
masak .oO( if your ancestors were alive right now, they'd be rolling in their graves ) | 18:02 | ||
tadzik | :o | ||
AlexDaniel` | nah, I don't mind at all, let it be main. It's just that changing it for existing repos is hard, and having both at the same time in different repos is annoying because muscle memory and ctrl+r | ||
codesections | m: { say now - ENTER now } | 18:03 | |
camelia | 0.00073259 | ||
masak | AlexDaniel`: I'm even willing to let my muscle memory take a hit if it genuinely makes some people of color less uncomfortable in IT | ||
but I am a little bit sad it had to come to this | |||
codesections | my muscle memory is honestly m<TAB> anyway | 18:04 | |
masak | something about it feels more like "pattern matching" and less like solving genuine issues, if you see what I mean | ||
tadzik | I honestly find it hard to believe that this is anything else than virtue signalling | ||
AlexDaniel` | it'd also be a constant reminder for the next 10 years if not more :) | ||
tadzik | a culture that never dealt with their racist past (and present!) and so it resorts to empty gestures to pretend that they're trying | 18:05 | |
codesections | m: sub foo() { say now - ENTER now }; foo | ||
camelia | 0.0007199 | ||
AlexDaniel` | codesections: what? m<TAB> expands into `git switch main`? how is that possible? | ||
masak | tadzik: even giving it the benefit of the doubt, it feels like mostly an empty gesture. the only thing about words is that they're common goods, so it's something everyone can join in on | ||
AlexDaniel` | codesections: ctrl+r mai on the other hand does, depending on your usage | 18:06 | |
codesections | no, git switch m<tab> | ||
AlexDaniel` | yes but you really want to type git switch? | ||
:) | |||
that's the point | |||
codesections | or, really, git co m<tab>, because I have an alias | ||
masak | just do what TimToady does, create a lot of one-letter aliases | ||
AlexDaniel` | nah, just use ctrl+r, it's essentially dynamic aliases | 18:07 | |
codesections | or magit | ||
masak | TimToady: when you're around, I have a question about unquotes and parsing | ||
AlexDaniel` | ctrl+r is all commands you have used in your lifetime, not just git :P | 18:08 | |
masak | AlexDaniel`: I've often said -- repeatedly -- that if I ever give a course on bash, it'll just be 2 days of constant repetition of the Ctrl+R key binding | ||
tadzik | :) | ||
AlexDaniel` | and then a week telling people to quote stuff, and they still won't | ||
codesections | yes, I know what Ctrl-r is | ||
masak | I figure I'd have time to go through it about 300 times in 2 days | 18:09 | |
codesections | and what fzf is | ||
and other history search options | |||
none have really grabed me, though | |||
masak | that's allowing for breaks | ||
AlexDaniel` | codesections: do you have infinite history set up? | 18:10 | |
could be the reason why | |||
without it ctrl+r is pretty useless | 18:11 | ||
codesections | I don't think I do atm. I have in the past | ||
masak | disagree. I don't have infinite history, and Ctrl+R is still very useful. | ||
codesections | I also have fish-style history-based auto complete, which plays a similar role | 18:12 | |
(though I don't actually use fish) | |||
masak | about quoting stuff: bash is clearly a dead end, but it just so happens to be "worse is better" good enough | 18:13 | |
so.. though | |||
I've seen some pretty impressive alternatives be proposed. none of them will ever catch on. | |||
the people who care will use something like fish. they will always be in a minority. | 18:14 | ||
I think if I could be bothered, I would use something like a Scheme shell instead of bash | |||
18:14
aborazmeh joined
|
|||
masak | scsh.net/ | 18:14 | |
codesections | yeah. But, I mean, I use yash, emacs/eshell, void linux, ... and raku. I'm pretty ok with tech choices that put me in the minority | 18:15 | |
masak | sure. but that wasn't my point. | ||
I'm ok with such tech choices too. | 18:16 | ||
I'm one of the few Bel users in the world :P | |||
codesections | (there's also the guile shell, gash) | ||
masak | and yes, I do use Emacs regularly, and I enjoy Linux. considering BSD. | ||
I want to write a GUI-based shell for Bel just so that I can use it on my Android phone | 18:17 | ||
codesections | wait, the paul graham lisp Bel? I didn't know there was an implementation | ||
masak | I have some good news for you today, sir | ||
tadzik | :) | ||
masak | or madam | ||
github.com/masak/bel/ | 18:18 | ||
tadzik | masak: I'd argue zsh has caught on really well as a bash alternative | ||
with some niche distros shipping it as a default too | |||
masak | codesections: basically feature-complete | ||
slow as all that, but I have a plan. it involves compilation. | |||
tadzik: well, yes | |||
tadzik: for all the good that does it | 18:19 | ||
tadzik: zsh is the Linux of shells :P | |||
technically very dominant, but still very much a hidden number two | |||
db48x | masak: some languages are certainly easier to parse | ||
perry | I was a former zsh fan, but I gotta say I like fish better now. | 18:20 | |
masak | ok, so we're doin' this | ||
tadzik | fish is the nixos of shells :P | ||
or whatever | |||
masak .oO( nixos...? ) | |||
perry | Look, I don't need POSIX compliance in my daily shell, dangit! | 18:21 | |
codesections | masak very interesting! I remember Paul Graham saying his goal with Bel was to let people write as concisely as possible. how's it compare to Raku? | ||
masak | codesections: I gotta tell you | ||
18:21
brtastic left
|
|||
masak | codesections: I was super-stoked since the day this came out, man | 18:21 | |
codesections: I still think there's something in there, something genuinely interesting | |||
what pg wants to do is to _widen_ the metacircular loop, to include not just the evaluator, but the reader, printer, even the numeric tower | 18:22 | ||
the problem is that "layers of abstraction" == slow | 18:23 | ||
which is why you need compilation | |||
codesections: to answer your question more directly, Bel is still mostly untested | 18:24 | ||
codesections: I've come to realize that I thrive with languages that are in the "early alpha" stage, like Bel is now, or like Raku was back in 2008 | |||
where there's lots of potential, and most of the energy goes into finding ways to realize that potential | 18:25 | ||
people like jnthn are much better at the "late beta" stage, where you need to commit to the long haul and build a VM or something :) | |||
codesections | :) | 18:26 | |
masak | as part of my semi-involuntary research into PL history in 2020, I've found that basically all the Scheme people built a VM | 18:27 | |
because that's what you do | |||
Bel is more of a Scheme in denial than a Lisp, I'd say | 18:28 | ||
well. it's a Scheme with gensyms. | |||
codesections | but, setting aside the "stage" issue, I'm fascinated by Bel vs Raku because both languages prioritize expressiveness, pretty much above all else. But Bel wants to get there through minimalist syntax, Raku through maximalist | ||
db48x | how does it put the reader and printer into the metacircular loop? | 18:29 | |
masak | codesections: this is true. but the difference might be smaller than you think. I don't see Bel as being all that minimalist in the _amount_ of built-ins -- only in the token length of their definitions. | 18:30 | |
db48x: the reader and printer are the easy ones. | |||
db48x: it's the evaluator that's a bother to bootstrap :P | |||
codesections | like you, I was *very* excited by Bel when it first came out (in fact, I'm actually still squatting on the r/bellang subreddit, which I should probably transfer at some point...) | ||
masak | codesections: didn't even know there was a subreddit | ||
codesections | there isn't | 18:31 | |
masak | codesections: I believe at this point I'm in possession of the most complete implementation. but I still want to make it fast. | ||
codesections | I just registered the name, but never did anything with it | ||
masak | codesections: there's been precious little interest in Bel from both HN and the Arc forum | 18:32 | |
codesections: if you want to team up and do something... let me know | |||
codesections | masak: but re syntax, I'm not talking about builtins, so much as number of operators. | ||
masak | codesections: please be more specific | ||
I'm definitely in a position to understand your point | |||
codesections | Raku uses every key on the keyboard other (other than `) and has fairly baroque precedence rules to let you combine them in all sorts of ways (plus things like circumflex, etc) | 18:34 | |
masak | codesections: by the way, I'm kind of squatting the github.com/bel-language organization. I want to put some documentation there. | ||
oh yeah. point taken. | |||
18:35
gnufr33dom joined
|
|||
masak | "circumfix", but yes :) | 18:35 | |
codesections | ha, thanks | ||
db48x | oh, I see; all of those items are self-hosted | ||
masak | well, Lisp ditches precedence/associativity right out of the gate | ||
codesections | yeah | 18:36 | |
masak | that's what the parentheses are about, in the end. they're about explicitly delimiting expressions. | ||
codesections | or enforces it super strongly, depending on your POV | ||
masak | it's not that you couldn't do it with precedence; it's just that it's a fairly ingrained not-default | ||
right | |||
I think what you should focus on is the liberal stance Lisps have towards what can go into a symbol | 18:37 | ||
codesections | right. But the perl/raku take is that you can be a lot more expressive when you can change word order | ||
masak | like, if you have something like a * in Raku, the parser goes "ah! that must be an operator!" | ||
but in Scheme, and Bel, it's just a symbol | |||
codesections | fair | 18:38 | |
masak | the only vaguely Algol-like language I know which got that brilliant idea from Lisp, is Dylan | ||
we should all write more Dylan code :) | |||
codesections: I dunno about "change word order". one thing I've been struggling with, both during my Alma phase (2014-2019) and my current Bel phase (2019-) is that in languages like Raku, a lot of effort is spent on "syntax" | 18:40 | ||
and Lisp doesn't really have that kind of thing, it just has nested lists, basically. | 18:41 | ||
codesections | yeah | ||
masak | in Bel, you can write an entire `if` statement without degrading yourself with baroque keywords like `else` or `else if` | ||
it's basically all just argument order | |||
codesections | that's kind of what I mean by maximalist vs minimalist approach to syntax | ||
masak | and that just makes things a whole lot easier -- seemingly -- for macros to act on the code | 18:42 | |
codesections | both are firmly convinced that there way will lead to the most expressive, concise code | ||
but they're opposite! | |||
masak | it doesn't help that I've recently found Kernel, and I kind of like that approach very much too. but Kernel is just so entirely different from basically everything that it's hard to know how to even relate it to the rest | 18:43 | |
18:43
eseyman left
|
|||
masak | codesections: well, I can say this with some confidence: if you opt for the Raku/Alma approach to ASTs, you'll end up with some kind of object-oriented AST API, and it's definitely a bit more complex than just S-expressions | 18:44 | |
for better and worse | |||
you can mitigate, sure, to a point | |||
but you won't ever compete with the utter simplicity of nested lists | 18:45 | ||
codesections | yeah. That's true | ||
guifa2 | stackoverflow.com/questions/662952...d-callsame <-- fun new SO question | ||
18:46
eseyman joined,
Sgeo joined
|
|||
masak | codesections: quasiquoting helps a bit, too. then you can "just write code" instead of describing it indirectly. | 18:47 | |
but in a way, that's still hiding complexity instead of reducing it. | |||
codesections | indeed. But Raku will get quasiquoting (and probably soon, with the AST work, right?) | 18:48 | |
masak | for example, in Alma/Raku (unlike in Lisps) interesting questions arise about what the relative precedence/associativity is of an unquote | ||
m: macro moo($x) { quasi { {{{$x}}} } }; say moo(42) | 18:49 | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Use of macros is experimental; please 'use experimental :macros' at <tmp>:1 ------> 3macro7⏏5 moo($x) { quasi { {{{$x}}} } }; say moo |
||
masak | m: use experimental :macros; macro moo($x) { quasi { {{{$x}}} } }; say moo(42) | ||
camelia | 42 | ||
masak | codesections: yes. :) | ||
implemented, by me, around 2012. | |||
what it will get soon, hopefully, is proper hygiene. | 18:50 | ||
codesections | yeah. Which helps a lot | ||
masak | spearheaded by Alma in 2015-2019. | ||
codesections | most of the macros I've written have been in Racket or Rust | 18:51 | |
(basically the same macro system) | |||
masak | much of taht hygiene actually works in Alma today. | ||
that* | |||
the other day I realized that most of it comes down to "respect static bindings" | |||
Raku happens to have static bindings. not every language does | |||
and so macros need to preserve those. occasionally that means putting variables through unusual contortions. | 18:52 | ||
codesections | yeah. I really think it'll be _possible_ for us to build a truly top-notch macro system | ||
masak | agreed. | 18:53 | |
jnthn has been doing some impressive groundwork there, too. keeping his eye on the ball. | |||
codesections | yep | ||
masak | Alma is a little bit more of a "research project". unfettered by in-production concerns, more thinking about what's possible. | 18:54 | |
codesections | yeah. That's part of what draws me to Raku -- it has _really_ lofty goals _without_ being a research project | 18:55 | |
masak | I'm a synopses guy, and (I guess) an apolcalypses guy. I see a really marvellous vision in there, one that's still unrealized in some ways. | 18:57 | |
18:57
sortiz joined
|
|||
masak | the clearest part of that (to me) is that, in order to really be a 100-year language, Raku, needs to be syntax-entensible. | 18:57 | |
codesections | yeah. Getting closer every $time-period, though, hopefully | ||
masak | that means not just macros, but slangs too. | ||
codesections | agreed. | 18:58 | |
masak | and extensible grammars, and meta-circular grammars. | ||
codesections | the foundations seem to be there for slangs | ||
masak | Alma is kind of the vanguard of that vision. | ||
codesections | more so than Racket/PLT? | ||
masak | haha | ||
Alma is definitely the closest thing to Racket, starting from Raku | 18:59 | ||
not sure how close it gets in practice ;) | |||
I always feel I should spend more effort looking into Racket | |||
I think the biggest inspiration I've taken from Racket so far into Alma is that... a "slang" is something temporary, that you can snap back out of, but a "lang" is permanent, for the rest of the compunit | 19:00 | ||
codesections | ooh, interesting | 19:01 | |
oh, I need to step away for a bit. Very interesting chat, though -- thanks :) | 19:02 | ||
masak | talk soon :) | ||
masak sleeps | |||
19:08
zxcvz left,
zxcvz joined
19:15
Black_Ribbon joined
19:17
mowcat joined
19:35
Doc_Holliwood left
19:40
zxcvz left,
MasterDuke left
19:44
Doc_Holliwood joined
19:55
rindolf left
|
|||
El_Che | lizmat: there? | 19:57 | |
lizmat | yes, I'm here | ||
El_Che | I posted the question in #raku-dev | 20:00 | |
regarding your answer to a post on reddit regarding a bug | |||
20:02
mowcat left
20:11
Kaiepi left,
natrys left
20:13
Kaiepi joined
20:29
brtastic joined
20:33
berber44 left
20:40
faisal_javed joined
20:46
faisal_javed left
20:55
aluaces joined
21:13
brtastic left
21:20
Kaeipi joined,
Kaiepi left
21:22
Kaeipi left
21:23
Kaeipi joined
21:24
Kaeipi left
21:34
kerframil joined
21:44
wamba left,
silug joined
21:52
mowcat joined
21:53
marcusr left
21:54
marcusr joined
21:59
gnufr33dom left
22:01
MasterDuke joined
22:07
Geth joined
22:13
Doc_Holliwood left
22:31
brtastic joined
22:44
Discipulus left
22:59
brtastic left
23:19
mowcat left
23:20
mowcat joined
23:23
mowcat left,
mowcat joined
23:37
tejr left
23:38
japhb left,
DiffieHellman left
23:40
DiffieHellman joined
23:41
tejr joined
23:42
brtastic joined
23:45
tejr left
23:46
tejr joined,
aborazmeh left
23:57
aindilis joined
|