« first day (2165 days earlier)      last day (2973 days later) » 

03:00
C++ lambdas fit just fine in a std::function
Function pointers are a thing for C statement block functions
Does the syntax above work
I think you grossly underestimate how powerful modern C++ is. That's why we're not compiling to LLVM.
A(m, n) -> [m = 0: n + 1
           [n = 0: A(m - 1, 1)
           [A(m - 1, A(m, n - 1))
Ok well if you're going to C++ that's different
Not really. Function pointers exist in C too.
03:02
@Qwerp-Derp I'm not a fan at the lack of matchinf braces and less whitespace honestly
Golfed:
Most of the transpiled code will be like C. We'll probably need to end up plundering C++'s stdlib for implementation details (particuarly shared:) is all.
That's ungolfed
A(m,n)->[m=0:n+1,n=0:A(m-1,1),A(m-1,A(m,n-1))
Should I change to curly braces?
@quartata ok that would work
@Qwerp-Derp Yeah. Looks more like a piecewise function like that
03:05
Still not sure on how you will manage to implement polymorphism in C but OK
piecewse?
What
Oh
spelling is hard
@Downgoat it's not really all that hard... you just follow a slightly different idiom
A(m, n) -> {m = 0: n + 1
           {n = 0: A(m - 1, 1)
           {A(m - 1, A(m, n - 1))
@Downgoat Polymorphism was a bad word. Envision it more like a struct with a union and an enum if you want
03:07
@quartata will primitives be wrapped in PytekObjects then?
So like that
It looks nice
@Downgoat Yes.
@Downgoat "virtual functions" map through function pointers. "Method calls" are just functions, where you explicitly pass the equivalent of "this" pointers.
@HWalters well you'd have to go and kinda manually reimplemment scopes in a sense.
Setting your "virtual function table" is a matter of picking the right C function to allocate/initialize your object
03:08
@quartata ok cool, thanks
Well, yeah, you do, but it's actually not that rare of a thing, and isn't terribly difficult... you just follow a C-like idiom
Does the syntax look alright?
Wait so it's called a piecewise function?
Difficulty isn't a problem, but any naive solution to such would be incredibly slow to my understanding
@Qwerp-Derp the "if" structure? Yeah
@Downgoat Huh
The more you know
@Downgoat The straightforward way to implement this type of thing should be pretty much equivalent to virtual functions in C++ in terms of performance
03:12
Also what does Haskell's pattern matching have to do with this
@Qwerp-Derp it's basically exactly what you're doing
So is Haskell's pattern matching essentially the same as my syntax for CMQ?
CMQ is my lang btw
Wrapping primitives seems to be slow but I guess any decent compiler should be able to do basic optimization to speed up
@Qwerp-Derp no but example is:
sign x |  x >  0        =   1
       |  x == 0        =   0
       |  x <  0        =  -1
@Qwerp-Derp you still haven't actually shown any kind of sequence in CMQ.
What do you mean @Pavel
03:19
You said it's based on sequences but you haven't shown us any behavior like that.
Also, come on guys, we need more than four languages in the time capsule.
@Downgoat Accessing class members is not slow
@quartata huh?
@quartata go add your language.
You said wrapping primitives is slow. Accessing class members isn't slow
@Pavel isn't my language, isn't my place to say
Not confident we can make 2018 anyways
accessing class members isn't slow, unless they're virtual
virtual accesses are fairly slow compared to static ones
03:27
At least not a full release. Our STDLIB is going to be a nuisance
I've got an idea for a useful language, but the idea isn't fully developed
@quartata I'm not talking about that rather operator overloading and all, which I assume you'll have. Will all the runtime checks due to dynamic types, that would pose a bit of a problem for speed, no?
Idea's based on a typical workflow... oft times when analyzing data I'll combine vim with binutils and Excel...
@Downgoat Dynamic type checking is only necessary if the type isn't specified. If you care about speed you'll do that. If you don't it will still be better than interpreted
...the idea would be to replace the latter two with an analysis language based on columns/array data types
03:32
@quartata still be better than interpreted? Hardly when regarding dynamic types, as JIT runtime optimizations will kick in
@Downgoat Interpreted still has to parse and Cython isn't perfect.
Cython won't match C even though it will be orders of magnitude faster than pure Python
Well, you have a year to make it @HWalters
@HWalters Have you played with APL or J or K before? Very array based.
I have not heard those acronyms before.
03:41
@quartata: No, but I'm aware of that
@Pavel They're languages.
Yeah, I know that, and that they are array based
not you :P
Oh, sorry
The not-quite fleshed out language I have in mind will work like "relations"; similar to columns in a spreadsheet (or tables in a database)
@quartata I think you are overestimating how much time parsing takes by a collosal amount. 0.5ms more on boot-up time is worth having a significant speed boost at run time
03:49
Some one should make a where cops post problems and robbers crack them by finding cryptographically secure ways to make answers.
@Pavel can someone submit multiple things?
@Downgoat I think you're overestimating what the speed boost is or that it would even exist at all
First off we're not doing duck typing.
That's pretty much it actually. The only optimization I can thinl of granted by JIT is making sure the class tree isn't cold.
It's one lookup either way
Small price to pay if you're not specifying types.
Now if we were doing duck typing that would be a different story -- checks would have a lot of hot spots that could be optimized JIT
@WheatWizard That kind of sounds like rules lawyering and/or just rolling your own crypto which I'm not sure how I feel about
@quartata What do you mean by "rules lawyering"?
04:00
i.e finding cheap cryptographic methods not excluded in the problem description
Isn't that always a problem with ?
it depends on what the problem is
if it's "figure out the language this program is written in" then crypto won't help much
I didn't intend the challenge as an actual question. I just found it funny how many problems can be solved in cryptographically secure methods.
enter this into this when it works
04:22
@ConorO'Brien sure, the challenge will rely on there being many but there's not a lot there now.
I made it so anyone can see the results to the time capsule form btw. The description field is optional.
seriously what happened to calesyta?
04:39
What's that?
@Pavel I don't seem able to see the results.
@Mego Thanks
I'm not really sure why...
do you have the form connected to a google spreadsheet?
04:43
just brings me to the form
And no, I can't figure out how on mobile.
@Downgoat are you responsible for the downsheep submission, or is that an actual user?
Did SE fix MathJax? CR is running it so it seems likely that it is now working
Ok, have spread sheet: docs.google.com/spreadsheets/d/…
@ConorO'Brien ^
I haven't come up with a name for my language yet.
@Pavel Perhaps make it public so we can all see?
Dur...
Oops.
Spreadsheet works now, in theory. @Downgoat @ConorO'Brien
05:04
alright looks good
0
A: Sandbox for Proposed Challenges

MegoCompute the Wilson score interval The Wilson score interval is a confidence interval of the probability of success, based on the proportion of successes in a set of Bernoulli trials (a Bernoulli trial is a trial in which exactly two independent outcomes are possible). The interval is given by th...

Anonymous
@NewSandboxedPosts Damn that was fast
wat
wat
what do you think of my anguage idea
What is it
wat
wat
look at t he spreadsheet
05:16
@Mego post says 6 min ago, bot messaged at 08:09
Wtf
That's... Uh... Interesting. Are there eight Whitespace characters in ascii?
Anyway, that'll take a good fifteen minutes to implement. You can make more than one submission btw.
@Pavel there are a few that are controversial: in order of least controversial to most, it has space, linefeed, tab, formfeed, carriage return, vertical tab, a few separators like FS and GS, and NUL
interestingly, there's an actual "newline" character in Latin-1 (and thus Unicode) that's distinct from any of the ASCII-7 whitespace
(and of course there's a bunch more possible whitespace in Unicode)
I think by most people's counts, though, the number of whitespace characters in ASCII is in the 4 to 6 range
Well, wat is gonna need eight to make a bf derivative.
At least if I understood right that is basically alphafuck but white space.
wat
wat
05:33
@Pavel actually base 3
I only use space tab and enter
@noɥʇʎԀʎzɐɹƆ do you know of any officialish tool/standard to generate python code (i.e. AST -> Python)? Language doesn't really matter
Pythons ast module doesn't seem to let me make an AST but I might be wrong
I am also not sure if that sypoorts like Cython
wat
wat
basically it will be two trits for one of 8 characters
and a nop
Like JS has an extendable AST format w/ code gen such as babel
Anonymous
@Downgoat ast.parse?
Anonymous
>>> ast.dump(ast.parse('print("Hello, World!")'))
"Module(body=[Expr(value=Call(func=Name(id='print', ctx=Load()), args=[Str(s='Hello, World!')], keywords=[], starargs=None, kwargs=None))])"
05:47
Not sure if I'm happy more people are participating in the time capsule, or disappointed there will soon be yet another trivial bf derivative out there.
I'm working on my koth
Oh that's a great idea... a bf derivative that just shuffles the characters around
For the sole purpose of making it really hard to polyglot it with bf
wat
wat
What should I use as a nop in Brainfuck that isn't whitespace?
Will everything else be a syntax error?
@wat G
don't ask why
05:49
My vote is for carriage return.
wat
wat
@Pavel @DestructibleWatermelon everything but white space is ignored in source, but I need something to use as nop in the intermediate brainfuck code.
@Mego That uses existing python code however
Anonymous
> A friendly message from The Name of All that is Good and Holy: Hello! This is The Name of All that is Good and Holy. Before you think of making your own extension to this language, here's another idea for you to consider: Don't! For the love of me, please don't make another derivative of this language! Unless you have something truly new to contribute, it's been done a million times before and will probably make it worse than the original.
2
I still say you should use G as nop
The polyglot argument actually works here.
05:50
@wat |^=\%_&#@*"';!?/ One of these
wat
wat
Maybe I should use the character "="
ugh you beat me to it
Anonymous
@Downgoat True. What you're thinking of (generating Python code from an AST you made yourself) is probably not reasonable.
wat
wat
@DestructibleWatermelon whatever
@DestructibleWatermelon random≠funny
05:51
That and I don't know how to remove submissions from Google forms.
wat
wat
@Pavel delete the row in the spreadsheet
hmmm, I'm not going to need this class am I?...
Won't it just be regenerated, being linked to the form?
@Mego Ok, I guess I could implement into my python fork
@Mego honestly it's not too bad as long as it's relatively simple
05:53
If you actually want me to remove it I'll do it when I'm at a computer.
Anonymous
This might be useful
Yeah, when you have access to the internet
I have this as a class and just realised I'm probably not going to need to extend it anyway
class Artifact:
    def __init__(self, x, y):
        self.x, self.y = x, y
time for a list I guess
@DestructibleWatermelon are you working on a language?
05:56
Oh right.
any function I could think of isn't really relevant
and could just be outside
The speed sheet crashes in seconds btw. It took me a good several minutes to make it public.
wat
wat
@Pavel no
What a fun typo to read: "The speed sheet crashes in seconds"
Or was that intended?
Hah, didn't notice.
06:01
@Mego O_o what's the use of AST parser without code gen...
Anonymous
@Downgoat What do you mean?
06:23
Packaging of my soap says it's not edible
@betseg did you realise too late?
I wonder who tried to eat and sued Dove
probably not dove specifically
At this point companies probably put that label on everything just in case.
Tru dat
06:32
I still need a name for my language... The name is always the hard part for me.
I don't know how you guys do it.
With one exception, I just pick something edible.
Wait, two exceptions.
Make up a symbol and call it a name
Tuna sandwich it is.
Actually, I'll call it 🍣, pronounced sushi.
Even though there probably won't be emoji in the syntax.
Sushi can be spelled with Martian letters
How does that work?
🍣 because it's inspired by ><> btw.
06:46
I think I'll post a snippet for the Processing thing every day
Uhh... Is the link to the form on the right side bar? If it is, can someone paste it here for me cause I'm on mobile.
@Dennis Wait what languages have you made
Please? I can't access the form without signing out or I get taken to edit view.
I can't think of any interesting 1-char snippets for Processing
06:49
Why 1-char snippet? Didn't that thread just get redefined as a wiki/showcase?
@Qwerp-Derp ShapeScript; Help, Wardoq!, Bubblegum, Jelly, and Sesos.
iirc my limited processing knowledge: ' in many languages defines a string literal, bit in processing instead defines a char literal.
Is sesos a food I haven't heard of?
@Pavel It means "culinary brains" apparently
See Sesos's wiki
06:51
Til
also looking at github there are only 2 food esolangs there
@Pavel Isn't that the same in Java though?
@DestructibleWatermelon Bubblegum isn't on GitHub.
Well, few languages can have something entirely unique in one byte.
06:53
I still say that 3 versus 2 doesn't really count as a rule
actually processing tbh isn't different enough from Java to warrant a different post
Dennis, you should enter the time capsule.
@Dennis did you say you were going to make a jelly 2 or something
because if you are you should call it beans
No he can't
Make it for the time capsule
06:55
"Beans" is implicitly reserved for something java related
As is every word that's remotely coffee related
Oh right
NetBeans
hmmm wait my koth has a mechanic I want to implement but it doesn't quite work with my current system
I kinda want to do a language that I can make one snippet for every day for a month
@Qwerp-Derp I'm working on the koth some more. I didn't know if you wanted to help maybe
06:57
@Dennis Does the language have to be implemented, or can it be just an idea for what's to come?
@DestructibleWatermelon Uhhh sure what do you need help with?
@Qwerp-Derp just general stuff
Like what?
I have the ideas down now I think
I just need to implement it mostly
Chuck us list of ideas
I will try to think of loopholes so that you can patch it up
care to join the room?
06:58
Sure
Hmmm... I'll add Doxical in
Or a Github link
You'll need one at some point for the controller
@Dennis?
@DestructibleWatermelon At some point. TIO comes first.
You could just do CMQ for the showcase.
@Qwerp-Derp It should be implemented.
07:00
Aww.
@Qwerp-Derp are you joining the room?
Seriously, does anyone have the link to the form?
@Pavel That's what I want to do
@Dennis Should or must?
07:02
Thank you
I only have an edit link
@Qwerp-Derp We define languages by their implementation. If there's no implementation, as far as PPCG is concerned, there is no language.
Orrite
Then let's get crackin' to make CMQ!
@Qwerp-Derp Must.
I'm still waiting for a useful reply to this meta post.
wat
wat
working on WSF right now
07:14
Whoa now, Stack Exchange required me to vote on questions. :)
Just because I haven't participated in a while XD
wat
wat
@zyabin101 they don't "require" you
they just pop up a message
Is anyone interested in helping to make docs for CMQ?
His language
07:25
Charles Montgomery Quince, my language
C. Quince
"Hello, World!"?
Sequence
@zyabin101 What
07:25
@Pavel You get it. :)
is the acronym CMQ canonical?
@DestructibleWatermelon That's probs going to be the extension of the file
@Qwerp-Derp Which program makes Charles output Hello, World!?
So like hello.cmq
It's based on sequences, I have to figure out ASCII support
So is anyone interested?
Interpreted, transpiled, or compiled?
07:27
I have experience using ASCII characters
@Pavel It's probs going to be interpreted
I'm thinking of making it in PegJS
Because it's easy to make parser stuffs in
Don't know JS, not gonna learn now.
So probably can't help you there
@Qwerp-Derp _o/
Running "c:\fpc\3.0.0\bin\i386-win32\cradle.exe "
HelloWorld
Running "c:\fpc\3.0.0\bin\i386-win32\cradle.exe "
123
LMAC's cradle works.
@zyabin101 Yey
Or I could write it in Python or something but I need a proper parser and stuff
Most interpreters these days seen to be written in python.
07:35
Should I use pegjs or pegcoffee?
@Pavel For recreational langs, yes.
Practical langs tend to use more advanced tools like C or Java.
I've written a few in C++
@Qwerp-Derp Whatever the heart feels! :D
Which I'm sure surprises nobody here
I feel like I'm not good enough in C++ to make a full-fledged language
I like to fall back to higher-level languages
07:37
Dynamic typing is useful for data structures.
Wait what is dynamic typing
Unlimited precision ints is nice too.
@Qwerp-Derp variables don't have type declaration and type can change.
Like in JS.
@Qwerp-Derp at first approximation it's typing that's handled at run-time
For interpreters, it means you can have a list of variables without worrying about what those variables are.
07:40
I like dynamic typing - that's probably why I don't use low-level languages like C++ & Java
In Java for example,I could make a hashmap for variables, but I'd have to put in some effort to store integers and strings.
Which is why I'm writing 🍣 in python.
Does anyone want to help in making some docs?
For CMQ?
@zyabin101 Yey
Wait zyabin did you work on VSL?
What was the site that you guys used for cloud docs stuff
I guess I can help a bit.
But I have other things to do m
07:43
@Qwerp-Derp No.
@Qwerp-Derp IDK, but I'll try setting up a GitBook.
We mainly need ideas for the syntax
Rough high level idea... completely separate your syntax from your semantics
Oh sketchboard
@HWalters What?
Mathematica-like syntax. Obviously.
Basically make a form where you can define code structures, having nothing to do with anything in the language (including builtins like "loops")
07:45
Running "c:\fpc\3.0.0\bin\i386-win32\translator.exe "
1
        d0 = 1
I wrote a working translator \o/
...then use that structure to lay out everything
I've done that for a language before, and it makes for really quick implementation
Object oriented or not?
(no "a semicolon can go here because we're in a for loop, but not here because ...")
Oh hackmd
I'll still make a GitBook.
07:47
OK.
(Instead of 68000 asm, I use Python in my translator.)
Jesus... They managed to make hackmd mobile even worse
Whoa what happened
I can no longer type
07:52
Meh, time to head on...
Wait no I found a setting to override their system for input
It works now
Running "c:\fpc\3.0.0\bin\i386-win32\translator.exe "
3+5
        d0 = 3
        d1 = d0
        d0 = 5
        d0 = d1 + d0
Running "c:\fpc\3.0.0\bin\i386-win32\translator.exe "
7-8
        d0 = 7
        d1 = d0
        d0 = 8
        d0 = d1 - d0
Running "c:\fpc\3.0.0\bin\i386-win32\translator.exe "
8
        d0 = 8
        d1 = d0

Error: an addop was expected
Uhh...i noticed a n=(0||1) in there.
what should I call the koth characters?
In most languages that means n==true
07:55
soldiers?
You might want a different syntax there
What why?
What's wrong with that?
That seems like a case for elementOf rather than or.
And || is pretty universal or notation
also its using equals for comparison not assignment
is an issue he may be thinking of

« first day (2165 days earlier)      last day (2973 days later) »