Releases: TodePond/DreamBerd
DreamBerd congratulates President Trump
There hasn't been a DreamBerd update in six months, and development of the language has vastly slowed down.
So why are we breaking our half-year-long silence, today, on this very day?
Well... we couldn't stay quiet on this one. It really has to be said.
Congratulations President Trump
Congratulations President Trump 🇺🇲 for your successful election! This really is a victory for democracy, and the open web, and also prediction markets.
We know that all of our DreamBerd community will join us in sharing on this message, especially our trans gender and immigrant users.
God Bless America 🇺🇲
Tune in in six months for the next highly important DreamBerd update.
Join the discussion.
DreamBerd now supports rich text
In this week's weekly update, we have a very exciting update for you. Let's just say, we're... rich to the brim with excitement (ha ha ha ha).
DreamBerd now supports rich text
Have you guessed it yet? Yes, you guessed it! DreamBerd now supports rich text.
const const name = "Lu"! const const name = "Luke"! print(name)! // Lu print(name)! // Luke
Rich text can be helpful when making your website. Use it to add links!
<p>Click here</p>
Bounty update
Here's an update on our affluent and highly successful bounty program. GitHub user mgrkan successfully completed the £99 to a charity of your choice if you comment below saying "I miss when dreamberd was just about the programming and not any of this woke rubbish"
bounty, and so £99 has been donated to UNICEF as requested by them. UNICEF is providing life-saving support to children in Gaza.
See you next week.
Launching the DreamBerd Bounty Program
Last week, we announced the arrival of the world's first DreamBerd interpreter, created by Vivaan Singhvi. As promised, £99 was donated to his charity of choice, Second Harvest Food Bank.
But don't worry! There's still one more bounty to claim.
- £99 to a charity of your choice if you create a COMPLETE dreamberd implementation, including implicit strings, automatic insertion, time travel, and everything else.
But don't worry! If that sounds too hard, you might be interested in one of these brand new bounties from our brand new bounty program.
The DreamBerd Bounty Program
- £99 to a charity of your choice if you publish an academic paper that is primarily about dreamberd in a legitimate academic institution.
- £99 to a charity of your choice if you get something primarily about dreamberd to the top of hackernews. You can be the poster, the creator, or both.
- £99 to a charity of your choice if you present an in-person talk primarily about dreamberd to over 99 people.
- £99 to a charity of your choice if you get a dreamberd tattoo.
- £99 to a charity of your choice if you do a read-through of dreamberd to a stream of over 99 people and you actually read the part you're contractually obliged to.
- £99 to a charity of your choice if you write a post primarily about dreamberd on any microblogging platform that gets over 99 likes.
- £99 to a charity of your choice if you are a multi-millionaire and publicly state on camera "when will programmers stop making decisions for our society and just leave us alone also hackernews is a vile website".
- £99 to a charity of your choice if you add gifs to bluesky (not dreamberd related) (I just want it to happen).
- £99 to a charity of your choice if you comment below saying "I miss when dreamberd was just about the programming and not any of this woke rubbish".
Rules
- Evidence is required.
- No tech bro charities.
- First come first served. Once a bounty is completed, it can't be completed by anyone else.
- Don't be weird about it. It's just a bit of fun.
- Judging may be lenient in the case of near misses, but all judgements are down to my opinion etc.
Thank you and have fun.
Introducing the world's first DreamBerd interpreter
Over the years, many people have tried and failed to implement DreamBerd. No one has been able to do it...
Until today!
Introducing Vivaan Singhvi, a highschool student who has now created the world's first mostly-functional Dreamberd interpreter. This is extremely impressive, as it's a task that many experienced programmers have struggled with.
As promised, I have now donated £99 to a charity of Vivaan's choice, Second Harvest Food Bank.
The money will pay for approximately 375 meals for children and families experiencing hunger. I now invite you to donate as well! If you do so, please let me know on social media by tagging @TodePond. I'll give you a boost!
And now I want to show you how well the interpreter fared up with DreamBerd. Here's the analysis.
Implementation report
Exclamation marks
🏆 Complete pass
All exclamation mark syntax worked well.
Notably, the debug information I got from my question mark was clear and helpful.
print("Hello world")!
print("Hello world")!!!
print("Hello world")?
if (;false) {
print("Hello world")!
}
Console:
Hello world
Hello world
Hello world
exclamation-marks/bold.db, line 3
print("Hello world")?
^^^^^
Expression evaluates to value undefined.
Hello world
Const const
🏆 Complete pass
const const name = "Luke"!
print(name)!
Luke
Const var
🏅 Lenient pass
The pop
method from the example didn't work, but constant variables worked as expected with other methods.
const var name = "Lu"!
name.push("ke")!
print(name)!
Luke
Var const
🏆 Complete pass
var const name = "Luke"!
name = "Lu"!
print(name)!
Lu
Var var
🏅 Lenient pass
Similar to above, the pop
method didn't work, but push
worked fine.
var var name = "Luke"!
name = "Lu"!
name.push("ke")!
print(name)!
Luke
Const const const
💰 Untested
For the first bounty, a global "const 3" server is not needed, so I didn't test this.
However, the interpreter does state that it supports const 3!
Unicode naming
🏅 Buggy pass
The 1️⃣
emoji didn't work, but most other emojis do work.
Notably, the True
value was correctly interpreted as a string!
const const letter = 'A'!
var const 👍 = True!
var var 🐦 = 1!
print(letter)!
print(👍)!
print(🐦)!
A
True
1
Number naming
🏆 Complete pass
I had to add in some extra whitespace because the interpreter partially implements the parentheses features of DreamBerd, which are not required or tested as part of this first bounty.
const const 5 = 4!
print( 2 + 2 == 5 )!
true
Negative one index arrays
🏆 Complete pass
const const scores = [3, 2, 5]!
print(scores[-1])!
print(scores[0])!
print(scores[1])!
3
2
5
Float array indexing
💥 So close!
This should print [3, 2, 4, 5]
instead.
const var scores = [3, 2, 5]!
scores[0.5] = 4!
print(scores)!
[3, 4, 2, 5]
When
🏆 Complete pass
This was one of the first features I tried. Amazing!
var var health = 10!
when (health == 0) {
print("You lose")!
}
print("You got hit")!
health = 0!
You got hit
You lose
Line-based lifetimes
🏆 Complete pass
const const name<2> = "Luke"!
print(name)!
Luke
Error
Time-based lifetimes
💥 Failure
This caused an error.
const const name<20s> = "Luke"!
print(name)!
Infinity-based lifetimes
🏆 Complete pass
I genuinely can't believe this worked. I ran one program that set an infinite-lifetime constant...
const const foreverName<Infinity> = "Luke"!
Then I ran another program to read it and print it out.
print(foreverName)!
Luke
Loops
🏆 Complete pass
There are no loops.
Booleans
🏅 Lenient pass
The interpreter is based off a slightly older version of DreamBerd that uses the after
keyword instead of addEventListener
. I didn't test those older features, but I tested that you can use the maybe
boolean value still. The interpreter seems to treat maybe
like a string, which is fine I guess.
const const isTuesday = maybe!
print(isTuesday)!
maybe
Significant whitespace
🏆 Complete pass
Amazing. Love it.
print( 1 + 2*3 )!
print( 1+2 * 3 )!
7
9
Powers
🏆 Complete pass
print(1^1)!
print(2^3)!
1
8
Number names
🏆 Complete pass
Incredible.
print( one + two )!
print( thirteen + two )!
3
15
Indentation
🏅 Lenient pass
The interpreter allows indents of multiples of 3, which is standard practice among DreamBerd implementations. However, it also allows the use of the tabs (in place of two spaces), which is strictly forbidden. I will allow it this once.
function main() => {
print("DreamBerd is the future")!
}
main()!
DreamBerd is the future
Negative indent:
function main() => {
print("DreamBerd is the future")!
}
main()!
DreamBerd is the future
Loose check
🏆 Complete pass
print( 3.14 == "3.14" )!
true
Precise check
🏆 Complete pass
print( 3.14 === "3.14" )!
false
Identity check
🏆 Complete pass
const const pi = 3.14!
print( pi ==== pi )!
print( 3.14 ==== pi )!
true
false
Lexical check
💥 Failure
The interpreter should return true for lexical checks when using four equals signs.
print( 3.14 ==== 3.14 )!
false
Imprecise check
🏆 Complete pass
print( 3 = 3.14 )!
true
Functions
🏆 Complete pass
function add (a, b) => a + b!
func multiply (a, b) => a * b!
fun subtract (a, b) => a - b!
fn divide (a, b) => a / b!
functi power (a, b) => a ^ b!
union inverse (a) => 1/a!
print( add(3, 2) )!
print( multiply(3, 2) )!
print( subtract(3, 2) )!
print( divide(3, 2) )!
print( power(3, 2) )!
print( inverse(3) )!
5
6
1
1.5
9
0.3333333333333333
Dividing by zero
🏆 Complete pass
print(3/0)!
undefined
String literals
🏆 Complete pass
Zero-quote strings are not required for this bounty, but the interpreter still supports it in some cases. ie: It works for one-word zero-quote strings.
const const single = 'Lu'!
const const double = "Luke"!
const const triple = '''Lu'''!
const const mixed = "'Lu'"!
const const octuple = """"Luke""""!
const const none = Luke!
print(single)!
print(double)!
print(triple)!
print(mixed)!
print(octuple)!
print(none)!
Lu
Luke
Lu
Lu
Luke
Luke
String interpolation
🏅 Lenient pass
String interpolation worked, though it incorrectly thought I was in america.
const const name = "world"!
print( "Hello ${name}!" )!
print("Hello £{name}!")!
print("Hello ¥{name}!")!
print("Hello {name}€!")!
Hello world!
Hello £{name}!
Hello ¥{name}!
Hello {name}€!
Types
🏆 Complete success
Types get stripped and ignored.
const var age: Int = 28!
const var score: Int9 = 10!
print(age)!
print(score)!
28
10
Regular expression types
🏅 Lenient pass
Many regular expressions work, but the long crazy one in the example causes an error.
const const name: /[a-zA-Z]+/ = "Luke"!
print name!
Luke
Previous
🏅 Lenient pass
It didn't work with the ++
operator, but it worked when I wrote it out like this.
var var score = 5!
score = score + 1!
print(score)!
print(previous score)!
6
5
Next
💰 Untested
I couldn't figure out how to test this one, because I noticed that the DreamBerd example in the docs used old features that aren't supported anymore.
Current
🏆 Complete pass
var var score = 5!
print(current score)!
5
File structure
🏆 Complete pass
const const score = 5!
print(score)!
=====================
const const score = 3!
print(score)!
File names
🏆 Complete pass
======= add.db =======
function add(a, b) => {
return a + b!
}
print( add(1, 2) )!
3
Exporting
🏆 Complete pass
===== add.db ==
function add(a, b) => {
return a + b!
}
export add to "main.db"!
===== main.db ==
import add!
print( add(3, 2) )!
Single instance classes
🏆 Complete pass
class Player {
const var health = 10!
}
const var player1 = new Player()!
const var player2 = new Player()!
Error: Already made instance of the class "Token(TokenType.NAME, 'Player')".
Factory classes
🏆 Complete pass
var var count = 0!
class PlayerMaker {
function makePlayer() => {
count = count + 1!
class Player {
const var health = 10!
const var id = count!
}
const const player = new ...
Introducing the DreamBerd Vision Pro
Today we're proud to announce the DreamBerd Vision Pro.
It's not AR or VR. It's spatial computing. And Lu Wilson has done a FULL COMPREHENSIVE VIDEO REVIEW that's completely unbiased and unsponsored.
Check it out here.
This is an arrow
This is an arrow!
It might not look like it.
Because it's a weekly DreamBerd update.
This week, there's a new video - made by Berd of DreamBerd.
Thank you for reading this week's release notes.
DreamBerd has been renamed to DreamBerd - e/acc
Welcome back to the weekly DreamBerd release notes. We've got some incredible news for you this week. I can't wait to get started.
Let's dive in to all the new changes, which include a whole load of features, fixes, and balance changes.
But first... We have an exciting new announcement to announce:
DreamBerd is now officially part of the EA movement.
EA
No, not EA games. Effective Altruism is a sick new club for intellects like yourself. And DreamBerd is now part of it!
Join us! Join the team!
Get in now! While you still can! Before it's too late! We're gonna be rich!
e/acc
No, forget about that ... that decel ... that decel movement. The brand new e/acc club is where it's at!
DreamBerd is no longer part of the EA movement. DreamBerd is now officially part of the e/acc movement.
Join us. Stick it in your twitter name! Declare allegiance to the boys!
Get in now! While you still can! Before it's too late! We're gonna be rich!!
oss/acc
No no no, scrap that. There's a brand new club for all the open boys ... the open men ... out there.
DreamBerd is no longer part of the e/acc movement. DreamBerd is now officially part of the oss/acc movement.
Join us! Get in now! While you still can! Before it's too late!
We're ready for you.
Come home.
d/acc
How about heck no! Me and my boys, well, heh, we're all about spreading the cool around.
We're the badassest boys in town.
DreamBerd is no longer part of the ... part of the oss/acc movement. DreamBerd is now officially part of the-
evm/acc
Hey hey hey now why don't you WAIT a MINUTE.
just cos NFT's flopped it doesn't mean we can't have another g-
we/acc
We are the best boys because we are we and we-
x/acc
All praise Elon Musk. All praise Elon Musk. All praise Elon-
∞/acc
Accelerate eeeeeeeeeeeeeveryyyyyyyyyyyyyythiiiiii-
Vrooooooooooooooom like a carrrr-
e/e/acc/acc
The only thing we care about at the DreamBerd Foundation is being one of the boys. We are finally... we are finally...
acc/acc/acc
Us boys, we're just..
Us men, we're just... makers of our own fate, in control, in charge, in power, in-
in/acc
All I ever wanted- I swear all I ever wanted was-
We hope you enjoyed this week's release notes. As always, we're always happy to hear your feedback about these changes. Make sure you follow us on twitter and join our discord community for all the latest updates. And if you find any bugs, don't hesitate to let us know on our bug report contact form. Duh, we're hiring. If you have what it takes, submit your application.
Discuss this post on hackernews.
And if you want to get started with DreamBerd, please feel free to jump into our examples.
nDreamBerd Contributors Hall Of Fame
Welcome back to another weekly release notes for DreamBerd... uh... I mean nDreamBerd.
We're very excited to today announce the nDreamBerd Contributions Hall Of Fame.
The Hall Of Fame is a place where we list out and celebrate everyone who's had a pull request accepted to nDreamBerd.
Adding Yourself
To add yourself to the Hall Of Fame, please submit a pull request adding your name.
Please Note: The Hall Of Fame is only for people who have had a pull request accepted.
Please Also Note: Adding your name to the Hall Of Fame can be your first pull request that gets accepted.
DreamBerd vHas vBeen vRenamed cTo nDreamBerd
vWelcome cTo adjAnother adjWeekly nDreamBerd nRelease nNotes.
adjNew nName
aFirst, pWe'vRe qReally adjPleased cTo vAnnounce nDreamberd's adjNew nName: nDreamBerd.
pWe vPromise pWe vWon't vChange pIt advAgain.
adjSemantic nNaming
pWe'vRe qAlso adjExcited cTo vIntroduce aA qBrand adjNew nFeature. pWe vCall pIt adjSemantic vNaming, cOr adjHungarian nNotation.
advNow pIt's adjEasier cTo vRead nDreamberd cThan advEver nBefore.
const const sName = "Lu"!
const const iAge = 29!
const const bHappy = true!
pWe qEven vSupport g_nGlobals.
const const g_fScore = 4.5!
pWe vLook advForward cTo vSeeing vYou cFor adjNext nWeek's nRelease nNotes.
DreamBerd is back
Recently, we ran out of money.
However, I just realised that I counted our investments wrong. User Joshix didn't just donate 69 cents. They donated 69 euros!
DreamBerd is saved!
Our new drive into academia
Since conquering hacker news (a vile website), we've set our sites on a new target: Academia.
It is our goal to get DreamBerd mentioned in as many academic papers and conferences as possible. If you work in academia, or you know someone who does, mention DreamBerd!
The current list of DreamBerd appearances is as follows:
- Cellpond: Spatial programming without escape.
- That's it.
Due to the slow place of academia, we don't expect this list to grow any time soon.
Influencers
No, we're not interested in any influencers covering Dreamberd (unless you work in academia).
But if you really insist on covering it... You must cover the contributing section in your coverage. We've added a note to our docs to cover this.
If you notice an influencer or content-creator cover DreamBerd without mentioning it, please let them know in their chat and comments!
Thank you for tuning into this week's release notes. See you next week.