←2019-02-05 2019-02-06 2019-02-07→ ↑2019 ↑all
00:05:33 -!- FreeFull has joined.
00:06:42 <oerjan> . o O ( putting a hyphen in sourcereal is a bit scow, but i guess better than nonexistence. )
00:22:31 <shachaf> oerjan: Yes.
00:22:40 <shachaf> I feel like this is better than going with a .org or something.
00:22:57 <shachaf> If you have a better domain I can use that instead.
00:58:57 -!- b_jonas has quit (Quit: leaving).
01:19:18 -!- xkapastel has quit (Quit: Connection closed for inactivity).
02:15:16 -!- nfd9001 has joined.
02:47:19 <esowiki> [[A1]] https://esolangs.org/w/index.php?diff=59722&oldid=59720 * Orby * (+0) /* Examples */
02:48:32 <esowiki> [[A1]] https://esolangs.org/w/index.php?diff=59723&oldid=59722 * Orby * (-1) /* Examples */
03:00:12 <esowiki> [[A1]] https://esolangs.org/w/index.php?diff=59724&oldid=59723 * Orby * (+0) /* Instructions */
03:24:43 <shachaf> kmc: https://www.reddit.com/r/QuantumComputing/comments/anawy4/alpha_testers_needed_for_quantum_computing_for/
03:25:42 <esowiki> [[A1]] https://esolangs.org/w/index.php?diff=59725&oldid=59724 * Orby * (+131)
03:26:51 <esowiki> [[A1]] https://esolangs.org/w/index.php?diff=59726&oldid=59725 * Orby * (-3) /* See Also */
03:27:06 <esowiki> [[A1]] https://esolangs.org/w/index.php?diff=59727&oldid=59726 * Orby * (+0) /* See Also */
03:27:57 <esowiki> [[A1]] https://esolangs.org/w/index.php?diff=59728&oldid=59727 * Orby * (-41) /* See Also */
03:52:16 <shachaf> skeptical of this so far
03:53:28 <oerjan> `wisdom quantum
03:53:29 <HackEso> That's not wise.
03:53:34 <oerjan> what!
03:54:15 <oerjan> `le/rn quantum leap//A quantum leap is a very small leap. See dragons.
03:54:17 <HackEso> Learned 'quantum leap': A quantum leap is a very small leap. See dragons.
03:56:18 <oerjan> sam has a point
04:02:58 -!- nfd9001 has quit (Ping timeout: 268 seconds).
04:23:13 -!- oerjan has quit (Quit: Nite).
04:31:48 -!- nfd9001 has joined.
04:42:58 -!- nfd9001 has quit (Ping timeout: 245 seconds).
04:46:58 -!- nfd9001 has joined.
05:31:56 <esowiki> [[Talk:Eodermdrome]] https://esolangs.org/w/index.php?diff=59729&oldid=59700 * Salpynx * (+963) /* Computational class / -completeness */ oops, I now see what you mean, thanks for clarifying!
05:58:00 -!- arseniiv has quit (Quit: gone completely :o).
06:34:36 <esowiki> [[Deadfish]] https://esolangs.org/w/index.php?diff=59730&oldid=59585 * A * (+272) /* TeXnicard */
06:36:15 <esowiki> [[Deadfish]] https://esolangs.org/w/index.php?diff=59731&oldid=59730 * A * (+8) /* This=That */
06:41:41 -!- moei has joined.
07:07:40 <myname> the more edits i see from that A, the more i wish he needed to be here at least once
07:08:01 <myname> `wisdom dragons
07:08:02 <HackEso> That's not wise.
07:08:15 <myname> i am disappointed
08:59:49 <esowiki> [[Print Function Deluxe]] N https://esolangs.org/w/index.php?oldid=59732 * Cortex * (+1496) Created page with "'''Print Function Deluxe''' is an esolang made by [[User:Cortex|]] designed to have very small code and many useful commands, but the only way to see what it actually did thro..."
09:02:05 -!- imode has quit (Ping timeout: 246 seconds).
09:02:45 <esowiki> [[Truth-machine]] https://esolangs.org/w/index.php?diff=59733&oldid=59679 * Cortex * (+65)
09:12:01 <esowiki> [[Language list]] https://esolangs.org/w/index.php?diff=59734&oldid=59713 * Salpynx * (+22) /* Non-alphabetic */ (Rna)
09:35:18 -!- AnotherTest has joined.
10:07:35 <esowiki> [[]] https://esolangs.org/w/index.php?diff=59735&oldid=59022 * Salpynx * (+216) /* Commands */ fill in missing commands (based on Buslubn, istil formula code)
10:15:41 <esowiki> [[]] https://esolangs.org/w/index.php?diff=59736&oldid=59735 * Salpynx * (+25) /* Commands */
10:25:53 -!- nfd9001 has quit (Ping timeout: 245 seconds).
11:10:39 -!- wob_jonas has joined.
11:12:40 <wob_jonas> Taneb invented the fulgurator, an explosive with such destructive power that any military who knew its secret could single-handedly rule the world. Taneb tried to sell the super-weapon to several governments, but the representatives all said no. They called Taneb mad, they laughed at him.
11:13:45 <wob_jonas> But Taneb would show them, he'd show them all. Even if he had to sell the weapon to the shadiest criminal through the underground, the fulgurator would be produced and its dominance over traditional weapons would rule the world. The government representatives won't be laughing then!
11:14:10 -!- Essadon has joined.
11:14:31 -!- Essadon has quit (Max SendQ exceeded).
11:15:12 <wob_jonas> myname: meh, A1 one is at least more interesting and partially specified to a higher degree than some of A's other languages. I mean, come on, he's even wrote a page about a brainfuck derivative.
11:15:53 <wob_jonas> I'm speaking relatively here, mind you.
11:16:15 <myname> i didn't mean A1 in particular
11:16:44 <wob_jonas> ah ok
11:16:58 <wob_jonas> indeed you didn't specifically mention A1
11:17:15 <myname> it just looks like he makes trivial substitutes of anything obscure he can find
11:20:50 <wob_jonas> certainly, but his edits don't seem significantly different than that of the boring newcomers that the wiki sometimes gets, A just edits in a higher quantity
11:23:41 <myname> yeah, he certainly does not lack motivation, but imho he could do much better if he'd get direct feedback from here
11:26:50 <wob_jonas> `? fulgurator
11:26:51 <HackEso> fulgurator? ¯\(°​_o)/¯
11:27:21 <wob_jonas> ``` grep -REi "fu[lr]?gu[rl]" wisdom
11:27:23 <HackEso> No output.
11:27:32 <wob_jonas> ``` grep -REi "fu[lr]?gu" wisdom
11:27:33 <HackEso> No output.
11:27:35 <wob_jonas> ``` grep -REi "fu[lr]?g" wisdom
11:27:36 <HackEso> wisdom/fugal:Fugals are fictitious flower parts. \ wisdom/fug:Fug is the opposite of Unfug (german: un-fug).
11:27:55 <myname> i like the fug one
11:28:13 <myname> if is true, though
11:28:17 <myname> *it
11:30:49 <wob_jonas> my hon. and learned friend fungot, has Taneb invented the fulgurator?
11:30:50 <fungot> wob_jonas: what is the minister going to the press, and to be in, the hospital in copeland, that the conservatives. he slightly missed to give us the best possible support, compared to a national average of just 1.5 prosecutions per council.
11:31:04 <wob_jonas> copeland?
11:31:22 <wob_jonas> 1.5 prosecutions per council?
11:31:47 <wob_jonas> ``` grep -REi "fung" wisdom
11:31:48 <HackEso> wisdom/marmite:Marmite is a hive mind of fungal microorganisms spreading throughout the supermarkets of the Commonwealth. \ wisdom/deewiant:Deewiant is the world expert on Befunge conformance testing. \ wisdom/children:Children are a fungible commodity. \ wisdom/mycology:mycology is a Befunge-98 (also -93 to some extent) testsuite that can be found at https://deewiant.iki.fi/projects/mycology/ \ wisdom/füngöt:Füngöt is the German pronunciation of fungo
11:32:13 <wob_jonas> ``` grep -REi "fung" wisdom | tail -n+5
11:32:14 <HackEso> wisdom/füngöt:Füngöt is the German pronunciation of fungot. \ wisdom/zzo38:zzo38 is not actually the next version of fungot, much as it may seem. \ wisdom/pietbot:Pietbot is the only thing that can defeat fungot. \ wisdom/prefixes:Bot prefixes: fungot ^, HackEso `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, idris-bot ( , jconn ) , j-bot [ . \ wisdom/fnordcore:Fnordcore is fungot's favorite music genre. \ wisdom/fungot:fungot is our beloved ch
11:32:33 <wob_jonas> ``` grep -REi "fung" wisdom | tail -n+10
11:32:34 <HackEso> wisdom/fungot:fungot is our beloved channel mascot and voice of reason. \ wisdom/befunge:In the Beginning was Befunge. And Befunge begot Fungot. And Fungot got Taneb. And Taneb tanebvented All the Things. Fnord. \ wisdom/page:The smallest floating-point number is known as pages. Fungot discovered it. \ wisdom/word salad detector:Our only word salad detectors before fungot proposed bright full speed under the mediterranean guadalope a light sauce impertinen
11:33:00 <wob_jonas> ``` grep -REi "fung" wisdom | tail -n+13
11:33:02 <HackEso> wisdom/word salad detector:Our only word salad detectors before fungot proposed bright full speed under the mediterranean guadalope a light sauce impertinent used the best brains of codeine fragments emerge from the red arrow shark-repellant housewife a smattering and yes I said yes I will Yes.
11:49:33 -!- Lord_of_Life has quit (Ping timeout: 244 seconds).
11:51:36 -!- Lord_of_Life has joined.
11:51:44 -!- ais523 has joined.
11:56:45 -!- ais523 has quit (Remote host closed the connection).
11:57:57 -!- ais523 has joined.
11:59:08 <wob_jonas> hi ais523
12:00:35 <wob_jonas> ais523: I know very little of ordinary differential equations, probably less than what was required to get the passing grade on the mandatory course on them back lots of years ago. those fundamental theorems about existance and uniqueness and smoothness of ODE solutions, what do they say about the system you can write in Analogia?
12:01:30 <wob_jonas> also, how are the input and output functions supposed to work?
12:03:04 <wob_jonas> the way how Analogia allows you to put any variable on the right hand side of the differential operator makes this system real strange, I don't think I can even define what they're supposed to mean
12:03:30 <wob_jonas> (plus they look incorrect without a parenthesis around those sums, but that's a different matter)
12:08:42 <wob_jonas> I mean, if they always said dt, that would be nice and simpler
12:15:15 <ais523> being able to put anything on the RHS is the main advantage that mechanical analog computers have
12:15:29 <ais523> it's not too hard to understand if you think about it in terms of rates of change
12:15:58 <ais523> for a given integrator, the sum tells you how fast the value of the integrator changes in response to a change in the differential variable
12:16:32 <wob_jonas> I don't know how mechanical analog computers worked, and I don't even really like the idea of mechanical analog computers. computers should be electronical.
12:16:38 <ais523> a mechanical integrator is basically a varying-ratio gear, there's a gear-like system set up between the differential variable and the integrator's value, and the value being integrated sets the ratio
12:17:33 <ais523> I think viewing Analogia as a differential equation is a bit of a red herring, it's much easier to understand using integrals than derivatives
12:17:48 <wob_jonas> yeah, but there's the problem that the stuff after the dee can turn back (have a zero derivative) in which case the simple implementation runs into a division by zero
12:18:09 <ais523> (incidentally, electronic analog computers require dt in all their integrators, but I think you lose a lot of computational power doing that and have to add it back using extra primitives; however, electronic analog computers can easily implement derivatives, which mechanical analog computers can't)
12:18:45 <ais523> wob_jonas: nah, while the thing after the d isn't changing, the value of the integrator doesn't change either, and when it's running backwards, the integrator runs backwards
12:19:40 <wob_jonas> hmm
12:19:43 <ais523> think of it like a definite integral, integral(0 to 2)(y dx) is basically saying "x changes from 0 to 2"; so if x changes from 0 to 2 and back to 0 there's no real conceptual problem, you'll end up back where you started unless y also changes in an asymmetrical way
12:27:10 <wob_jonas> but you have a whole system of multiple equations that influence each other
12:27:14 <wob_jonas> in crazy ways
12:27:27 <ais523> but it's all continuous, this is the whole reason analog computers work
12:28:19 <ais523> changing the value of an integrator never affect anything /right now/ apart from integrators that it's the differential of (which is why Analogia requires no cycles in the differential term)
12:28:25 <wob_jonas> that is... what you hope. maybe it is, but I don't know those theorems properly.
12:28:28 <ais523> all it does is change the rate of change, which is something that only affects the future, not the present
12:29:14 <ais523> so I guess you can think of Analogia as a really complex machine for changing its own future evolution
12:29:20 <wob_jonas> they guarantee that they work in an open environment of 0 for certain conditions. I don't know what the conditions are, there's like a dozen different versions of the theorem
12:29:22 <ais523> but any given present state is easy to understand
12:29:53 <ais523> if you stop thinking about it as a system of differential equations the language is much simpler (although solving the differential equations is probably the easiest way to bring a program into "closed form")
12:30:50 <wob_jonas> I don't need a closed form, and certainly those usually don't exist except for some very special programs
12:31:19 <ais523> well, an optimizer would likely try to closed-form as much as possible
12:31:57 <ais523> e.g. integrating x+x dx means that the output of the integrator will be the square of the input of the integrator, you'd want to optimize that into just using x² directly
12:32:03 <wob_jonas> sure, and a programmer will write interesting programs, not simple linear ones where all the dee variables are t
12:33:02 <wob_jonas> hmm
12:33:23 <wob_jonas> maybe the functions can't even turn back, at least for 0<t, because there's no way to introduce a minus sign? I don't know how this works
12:34:32 <izabera> uhm
12:34:43 <izabera> has anyone seen elliott in the past few years?
12:41:57 <int-e> heh, https://hackage.haskell.org/package/prettyprinter-1.2.0.1/docs/Data-Text-Prettyprint-Doc.html#t:Pretty has a cute law.
12:47:03 <ais523> I'm amused at the instance for Pretty Void
12:47:38 <ais523> which I think only exists so that empty containers of Voids are treated as having an appropriate type to be prettified
12:48:17 <int-e> oh it says that it's pretty absurd.
12:48:43 <int-e> (ignoring special characters: 'instance Pretty Void where pretty = absurd')
12:49:11 <int-e> I did wonder why there's no instance Pretty Doc.
12:50:08 <int-e> (I had an auxiliary function of type Pretty p => [p] -> Doc and tried feeding it a list of Docs)
12:50:09 <ais523> hmm, how useful are Void-producing monad actions?
12:50:44 <int-e> they may still have an effect in a monad transformer
12:51:05 <int-e> (ignoring laziness that means that Void values actually exist)
12:55:01 <int-e> So perhaps not so useful in Haskell; you can document the intent that subsequent actions will never be performed, but it's not enforced.
12:55:22 <int-e> :t System.Exit.exitSuccess
12:55:23 <lambdabot> IO a
12:55:30 <int-e> ... right.
12:56:03 <int-e> (you can think of that as having "absurd" already built in)
13:06:03 <ais523> oh, so it's similar to ! in Rust, which makes sense
13:06:22 <ais523> monads give sequencing so "nothing ever happens after this in sequence" is a useful thing to be able to say
13:20:09 <esowiki> [[Csub]] N https://esolangs.org/w/index.php?oldid=59737 * A * (+210) Created page with "[[Csub]] is a "subset" of C. ==Syntax== ==Implementation== [https://github.com/Btup/C-Subset Official compiler to C] ==Turing-completeness== [[Category:Turing-complete]] Cat..."
13:22:45 <esowiki> [[Csub]] https://esolangs.org/w/index.php?diff=59738&oldid=59737 * A * (+250)
13:23:15 <esowiki> [[Csub]] https://esolangs.org/w/index.php?diff=59739&oldid=59738 * A * (+640)
13:24:41 <esowiki> [[Csub]] https://esolangs.org/w/index.php?diff=59740&oldid=59739 * A * (+100) /* Syntax */
13:25:16 -!- wob_jonas has quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client).
13:28:54 <esowiki> [[Csub]] https://esolangs.org/w/index.php?diff=59741&oldid=59740 * A * (+167) /* Turing-completeness */
13:29:07 <esowiki> [[Csub]] https://esolangs.org/w/index.php?diff=59742&oldid=59741 * A * (+0) /* Hello, world! Program */
13:30:22 <esowiki> [[Csub]] https://esolangs.org/w/index.php?diff=59743&oldid=59742 * A * (+25)
13:31:44 <esowiki> [[Csub]] https://esolangs.org/w/index.php?diff=59744&oldid=59743 * A * (+73)
13:38:16 -!- wob_jonas has joined.
13:44:06 <myname> wait, is that the github profile of A or does he just link to other peoples languages?
14:08:43 <esowiki> [[Csub]] https://esolangs.org/w/index.php?diff=59745&oldid=59744 * A * (-336)
14:09:47 -!- wob_jonas has quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client).
15:19:26 -!- ais523 has quit (Ping timeout: 240 seconds).
15:51:47 -!- xkapastel has joined.
16:01:29 <esowiki> [[Special:Log/newusers]] create * Superiumentarius * New user account
16:21:20 -!- arseniiv has joined.
16:33:04 <Taneb> I should really learn how to properly touchtype
16:35:25 <orin> https://upload.wikimedia.org/wikipedia/commons/b/bb/First_Image_from_Mariner_4_-_GPN-2003-00060.jpg
16:35:53 <orin> ^ employee of Nasa hand-decoding image from Mars
17:34:12 <int-e> `"
17:34:13 <HackEso> 246) * Received a CTCP VERSION from nyuszika7h * VERSION Microsoft IRC# 2011 64-bit (Windows 8 Beta, x64, 2GB RAM) <nyuszika7h> Gregor: Windows 8 Beta? o_O <Gregor> A small benefit of my brief time as an intern at MS. \ 114) <ivancastillo75> Oh I get it you guys just use this space to do nothing ?
17:46:56 -!- LKoen has joined.
17:51:52 -!- LKoen has quit (Remote host closed the connection).
18:01:31 -!- xkapastel has quit (Quit: Connection closed for inactivity).
18:12:27 -!- xkapastel has joined.
18:23:41 -!- Phantom_Hoover has joined.
18:23:41 -!- Phantom_Hoover has quit (Changing host).
18:23:41 -!- Phantom_Hoover has joined.
18:50:42 -!- LKoen has joined.
19:32:47 -!- LKoen has quit (Remote host closed the connection).
19:52:50 -!- imode has joined.
20:21:31 -!- xkapastel has quit (Quit: Connection closed for inactivity).
20:26:23 -!- xkapastel has joined.
21:03:25 -!- b_jonas has joined.
21:06:23 <esowiki> [[User:BradensEsolangs]] https://esolangs.org/w/index.php?diff=59746&oldid=59721 * BradensEsolangs * (+107)
22:00:21 <esowiki> [[User:Cortex]] https://esolangs.org/w/index.php?diff=59747&oldid=59524 * Cortex * (+28) /* Languages I made */
22:01:25 <esowiki> [[Language list]] https://esolangs.org/w/index.php?diff=59748&oldid=59734 * Cortex * (+28)
22:06:08 <shachaf> Is there a language that makes generating code the primary thing, rather than a special case like a preprocessor?
22:06:23 <shachaf> It seems like quite a lot of code would be better generated than handwritten, if a language made it convenient.
22:06:52 <shachaf> Also most metaprogramming mechanisms people use, like CPP and C++ templates and so on, are quite bad.
22:07:28 <shachaf> C++ templates are ridiculously bad for what people use them for.
22:08:37 <shachaf> (Except for the relatively limited original use. Maybe.)
22:11:57 <kmc> lisp?
22:12:19 <kmc> everyone knows C++ is a hot mess
22:14:23 <kmc> shachaf: anyway metaprogramming is bad, fexprs are the future
22:14:24 <kmc> right?
22:15:48 <shachaf> Maybe?
22:15:56 <shachaf> Lisp doesn't really have a notion of compile-time
22:16:17 <shachaf> Or does it? I don't know. I want a language for C-level things.
22:16:27 <rain1> fexprs is one of those awful things i never understand why people care bout, like shen and wisp
22:17:02 -!- john_metcalf has joined.
22:17:30 <kmc> i think they're neat and wrote a long blog post about them http://mainisusuallyafunction.blogspot.com/2012/04/scheme-without-special-forms.html
22:17:36 <kmc> but they probably aren't practical
22:17:58 <shachaf> Most metaprogramming schemes are victims of the esolang disease.
22:18:14 <shachaf> Someone adds some feature, like C++ templates or Haskell type classes, or whatever, for a pretty limited purpose.
22:18:35 <shachaf> Then people start using them for other purposes, because metaprogramming is TG, even though the particular mechanism is a pretty bad one.
22:18:57 <shachaf> So then language designers see people use the mechanism for these things, and extend it in all sorts of ways that make it moderately easier to do things.
22:19:09 <b_jonas> shachaf: the problem is that it's hard to design a good one
22:19:13 <shachaf> But it's all quite a bad system for achieving the end goal, compared to a regular programming language.
22:19:18 <b_jonas> the rust guys are still trying, but still
22:19:25 <b_jonas> it's just hard to make it work well
22:19:31 <kmc> i used to have so much fun writing scheme
22:19:48 <shachaf> It can be a lot of fun writing in these accidental esolangs.
22:19:52 <shachaf> But it's not actually good.
22:20:01 <shachaf> (I mean, Scheme is less in this category than a lot of other things, probably.)
22:20:22 <b_jonas> I was also considering trying to make an esolang that's just meta-programming all the way down, as in, the main effect your program does is make another program of the same language but at a lower level, and all the levels are equivalent and there's one for every rational number or something
22:20:28 <b_jonas> but I couldn't yet figure out how to do it well
22:20:43 <b_jonas> I have ideas but they don't really work
22:20:51 <rain1> oh wow that code is really elegant, i like qoppa quite a lot
22:22:16 <shachaf> what if it's not eso but actually useful though
22:22:18 <kmc> thanks rain1
22:22:21 <shachaf> offtopic?
22:22:54 <kmc> it is fun how the bootstrap code is like an evolution from qoppa to scheme
22:23:38 <kmc> maybe it should have an esolangs wiki page
22:24:47 <shachaf> kmc: Hmm, maybe this operative thing is similar to the block thing I've been trying to figure out.
22:25:17 <b_jonas> block thing?
22:25:42 <esowiki> [[Special:Log/newusers]] create * Kmc * New user account
22:25:54 <kmc> I think I'll make one
22:27:34 <kmc> maybe it's not quite an esolang but i think it's in the same general spirit
22:27:37 <kmc> it is a tarpit of sorts
22:28:06 <kmc> is "lambda tarpit" a thing
22:28:11 <kmc> I declare it to be a thing
22:29:26 <rain1> haha
22:29:32 <rain1> unlambda is the king there then
22:29:42 <rain1> and maybe combinator ones too
22:29:44 <rain1> and blc
22:29:44 <shachaf> b_jonas: I think I discussed it before.
22:29:48 <rain1> theres a few that fit in that set
22:30:02 <b_jonas> shachaf: probably. this channel had a lot of things going on.
22:30:04 <shachaf> Something like, what should a {} block be, as a pseudo-first-class thing.
22:30:21 <shachaf> The "argument" to if/for/etc.
22:30:24 <b_jonas> uh, that really depends on the language
22:30:35 <shachaf> One answer is that those things are just macros.
22:30:43 <shachaf> But I thought there would be a nicer answer.
22:30:55 <b_jonas> I know what a block is in underload and consumer society, and what it is in postscript,
22:31:23 <b_jonas> in some languages (like perl) they're more or less anonymous closure bodies
22:31:45 <b_jonas> which is how you define functions in perl that take a block, although they don't quite work the same as the built-in stuff that takes a block, but still
22:31:53 <b_jonas> you can define a control structure like if
22:31:55 <shachaf> This is for a language with, let's say, no runtime notion of closure.
22:32:01 <b_jonas> and if you take the condition in a block, you can also define a while
22:32:05 <shachaf> It's supposed to compile to efficient code.
22:32:28 <shachaf> Also the primary use was supposed to be things that take "the rest of the block" as an argument, which I think I've discussed here before.
22:32:34 <b_jonas> shachaf: they still work if they're closures that are only allowed to capture the stack frame as a reference
22:32:37 <b_jonas> and can't be leaked
22:32:39 <kmc> shachaf: did you know there are multiple implementations of qoppa https://github.com/timfel/qoppy
22:32:44 <b_jonas> those compile to efficient code
22:32:49 <b_jonas> well, more efficient than normal anyway
22:33:06 <b_jonas> smalltalk and ruby take the closure thing even further than perl of course
22:33:10 <shachaf> b_jonas: Yes, but I want it to compile to efficient code, not things with indirect jumps and whatever.
22:33:46 <shachaf> Also I don't know many languages that have closures implemented in terms of a stack frame pointer.
22:33:49 <shachaf> Only D.
22:33:49 <b_jonas> shachaf: there are no indirect jumps in this. there might be dereferences though, which is bad.
22:33:55 <kmc> wow, it ended up in an ACM published paper?? https://www.researchgate.net/publication/306013530_Multi-level_Debugging_for_Interpreter_Developers
22:33:58 <kmc> rofl
22:34:01 <kmc> life is funny
22:34:05 <b_jonas> no indirect jumps because the closure type is known exactly
22:34:13 <shachaf> What do you mean?
22:34:21 <shachaf> Is while/if/whatever inlined?
22:34:36 <b_jonas> um... when or where?
22:34:47 <b_jonas> you mean like in smalltalk or ruby?
22:35:01 <shachaf> Wherever you said there are no indirect jumps.
22:35:04 <b_jonas> perl and ruby actually has built-in if and while statements that don't actually work with a closure
22:35:15 <b_jonas> shachaf: oh, that's always true if you put this in a strongly typed compiled language
22:35:24 <shachaf> Because "if" etc. is inlined?
22:35:26 <shachaf> Or what?
22:35:43 <b_jonas> oh, you mean the if function itself
22:35:46 <b_jonas> yes, that would have to be inlined
22:35:59 <b_jonas> but it would be because I assume a strongly typed language, and if would be a generic
22:36:03 <b_jonas> like a C++ template or rust generic
22:36:12 <b_jonas> so it must be instantiated for the specific closure type
22:36:19 <b_jonas> in which case it will certainly be inlined
22:36:21 <shachaf> The other thing is that you might have a thing take a block as an argument and change its scope.
22:36:52 <shachaf> If you have something like "using namespace foo { ... }", things inside the block would implicitly have name resolution in foo::.
22:36:59 <shachaf> That's certainly a compile-time thing, not a closure.
22:37:08 <b_jonas> yeah, perl does that
22:37:43 <b_jonas> when it compiles code, each part of the code that needs it remembers the active package, the enabled warnings, and certain pragmas, from compile time
22:38:03 <b_jonas> the relevant values either modify compilation, or are tracked somewhere in the compiled code so that the runtime can access it
22:38:18 <b_jonas> the active package is needed when you access a global variable or sub by name without qualification
22:38:41 <b_jonas> so if $foo isn't a local and you reference $foo, then it will mean $foo in the active package, which is fixed at compile time for any mention of $foo
22:41:20 <shachaf> I don't think Perl's separation between compiletime and runtime is as clear as I'd like, though maybe I can still get some ideas from it.
22:41:29 <b_jonas> it's definitely not clear
22:41:40 <b_jonas> you can run any runtime code at compile time, or compile anything at runtime
22:41:46 <b_jonas> nested to any number of levels
22:41:53 -!- LKoen has joined.
22:45:01 -!- AnotherTest has quit (Ping timeout: 250 seconds).
22:55:24 -!- oerjan has joined.
22:56:26 <esowiki> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=59749&oldid=59501 * Kmc * (+187)
22:56:36 <esowiki> [[Qoppa]] N https://esolangs.org/w/index.php?oldid=59750 * Kmc * (+1121) Create page
23:09:47 <orin> namspace template
23:10:12 <shachaf> I do think templated namespaces would be reasonable in C++
23:10:21 <shachaf> template<typename T> namespace N { ... }
23:10:21 <orin> declared like namespace foo<class T> { ....
23:10:39 <orin> or something
23:11:37 <orin> shachaf: they would be useful in my current project since I need to be able to easily compile the same stuff with two different backends
23:12:06 <shachaf> use cpp hth
23:12:19 <orin> yeah I'm using a #define but still
23:12:46 <orin> wouldn't it be more ceeplusplussy to use templates?
23:13:15 <shachaf> but more ceeplusplussy is more badder
23:17:49 <b_jonas> oh
23:21:35 -!- Phantom_Hoover has quit (Remote host closed the connection).
23:29:27 <kmc> shachaf's wrong
23:29:30 <kmc> templates all the way
23:29:50 <kmc> it depends on the details of course
23:30:44 <shachaf> SFINAE all the way
23:30:51 <shachaf> i,i sfinmk
23:48:04 <kmc> hahaha
23:48:39 -!- Lord_of_Life_ has joined.
23:51:17 -!- Lord_of_Life has quit (Ping timeout: 268 seconds).
23:51:18 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
23:51:31 -!- xkapastel has quit (Quit: Connection closed for inactivity).
←2019-02-05 2019-02-06 2019-02-07→ ↑2019 ↑all