🦋 Welcome to the MAIN() IRC channel of the Raku Programming Language (raku.org). This channel is logged for the purpose of keeping a history about its development | evalbot usage: 'm: say 3;' or /msg camelia m: ... | Log inspection is still being worked out Set by lizmat on 12 August 2021. |
|||
00:21
greppable6 joined,
linkable6 joined
00:22
releasable6 joined,
bisectable6 joined,
squashable6 joined
00:23
quotable6 joined
00:52
justsomeguy joined
01:05
reportable6 joined
01:21
committable6 joined
01:22
shareable6 joined
01:55
Max joined
01:56
Max is now known as Guest1367
01:57
Guest1367 left
02:39
justsomeguy left
03:39
linkable6 left,
evalable6 left,
releasable6 left
03:41
linkable6 joined
04:10
frost joined
04:33
neshpion left
04:41
evalable6 joined
|
|||
mjgardner | Realizing this may be a stupid question but I only just started learning, so: I want to exit my MAIN sub in a script with an error message and code but no line numbers. Would it be better/more idiomatic to 1) just say the error to STDERR and exit, or 2) die with a CATCH block that does that? www.irccloud.com/pastebin/TUSlZ1m7 | 05:08 | |
moritz | mjgardner: 2) sounds cleaner | 05:23 | |
mjgardner | moritz: It seems more verbose though. What are the advantages? | 05:24 | |
moritz | mjgardner: in time when MAIN grows, there might be more places that need error handling. Having a CATCH neatly encapsulates that in one position | 05:28 | |
moon-child | sub error($msg) { $*ERR.say($msg); exit 1 } | 05:29 | |
ez | |||
mjgardner | moritz: That’s a good point. If this is just for a toy program in a blog post, though? | 05:33 | |
I’m writing the same toy program in Perl 5 as a comparison, and I don’t want to set up Raku as a straw man that appears more verbose than necessary. | 05:37 | ||
05:40
releasable6 joined
|
|||
moritz | if it's just for a toy, do as you want :D | 05:46 | |
mjgardner | Thanks. | 05:56 | |
06:03
reportable6 left
|
|||
CIAvash | mjgardner: You can use `note` instead of `$*ERR.say` docs.raku.org/routine/note | 06:03 | |
mjgardner | CIAvash: Neat! Thanks! | 06:05 | |
CIAvash | also you can write it as `note .message and exit 1` | 06:07 | |
mjgardner | That’s more of a golfing move, though. It’s not like `note .message` will ever evaluate to false. | 06:18 | |
moon-child | well, it's like english. 'note the message and [then] exit' | ||
mjgardner | So is every ; as a statement separator. | 06:19 | |
moon-child | yes | ||
moon-child has, at this point, given up on trying to avoid abusing notation. It's there to be abused! | 06:21 | ||
mjgardner | As it turns out my message (I went with just the note and exit) is kinda long, so putting `and exit 1` at the end of the line gets lost when reading. But thanks for the suggestion. | 06:24 | |
06:51
mattil joined
06:56
xinming left
07:04
reportable6 joined
07:16
Xliff left
07:24
Frozenset joined
08:11
matti_ joined
08:14
mattil left
|
|||
andinus | japhb: i see, thanks. unfortunately Terminal::Print doesn't work on obsd, Terminal::QuickCharts is cool, i could combine it with Terminal::UI or Curses to make something | 08:54 | |
there was a channel publishing ncurses tutorials on raku, seems like they were taken down recentl | 09:09 | ||
09:14
evalable6 left,
linkable6 left
09:15
evalable6 joined,
linkable6 joined
09:31
Sgeo left
09:45
dogbert11 joined
09:47
dogbert17 left
|
|||
samcv | The highlighting on learnxinyminutes.com/docs/raku/ has been broken for at least a year due to the Pygments raku syntax highlighter not supporting =begin and =end without a blank newline after the =end. | 10:23 | |
I am going to just change those sections into normal block # comments to fix it. Other alternative would be to modify pygments to fix it. | 10:24 | ||
Or adding a newline before the =end also works. But I think just adding block comments is the cleanest, otherwise someone may try and remove the extra newline later on | 10:25 | ||
lizmat | agree :-) | 10:32 | |
10:33
oodani left
10:34
oodani joined
11:01
ddeimeke left
|
|||
andinus | i have an array of hashes and want to make a change to every "3" hash index of the elements in array, currently i'm looping over @list.end and making the change, is there a better way to do this? | 11:11 | |
m: my @list = %(0=> "z",1=> "a", 2=> "b", 3 => "c"),; | 11:12 | ||
camelia | ( no output ) | ||
lizmat | .<3> = 42 for @list ?? | 11:14 | |
andinus | makes sense, i was thinking of .map | 11:15 | |
also, can i convert that list of hash to a list of lists since the keys are just numbers from 0..5, | 11:16 | ||
i tried @list.map(*.values) | |||
@list.map(|*.values) actually but it returns the values in random order it seems | 11:17 | ||
lizmat | yes, .keys and .values will return in random order for hashes | ||
codesections | andinus: you can do `@list.map(*.sort».values)` | 11:28 | |
andinus | i'm parsing a csv, it seems hyper is faster than race, it has to do extra work right for ordering? | 11:29 | |
i see, thanks codesections, that works | |||
i did @list.map(*.sort.map(|*.values)); needed that slip, it returns a seq otherwise | 11:31 | ||
Frozenset | codesections: did you mean `value` at the end instead of `values`? | 11:32 | |
andinus: If keys are all 0..5, I think you can also do a hash slice as `@list>>.{0..5}` | |||
or sans the dot: `@list>>{0..5}` | 11:33 | ||
codesections | Frozenset: .value works for that example code but gets you a list of Str. andinus asked about converting the hashes to a lol – either way works, depending on what you want | 11:35 | |
andinus | thanks Frozenset, the keys are 0..5, that works | 11:37 | |
looks like .value does what i want, it returns the same thing as .map(|*.values); | 11:38 | ||
and *.sort.map(*.value) too | |||
i'll do >>.{0..5} | |||
codesections | m: my @list = %(0=> "z",1=> "a", 2=> "b", 3 => "c"),; say @list»{*} | 11:40 | |
camelia | ((c a z b)) | ||
codesections | m: my @list = %(0=> "z",1=> "a", 2=> "b", 3 => "c"),; say @list»{0..3} | ||
camelia | ((z a b c)) | ||
codesections | Interesting to see that ^^^ those two are different | ||
andinus | m: my @list = %(0=> "z",1=> "a", 2=> "b", 3 => "c"),; say @list>>{0..*}; | 11:41 | |
lizmat | codesections: any run will produce different ordering, even within a single process | ||
camelia | MoarVM panic: Memory allocation failed; could not allocate 64459440 bytes | 11:42 | |
lizmat | see algorithmic complexity attacks | ||
andinus: interesting | |||
11:42
linkable6 left
|
|||
codesections | lizmat yeah, I know that in general for .values | 11:42 | |
lizmat | and .keys and .pairs and .kv: anything that takes an iterator on the hash | 11:43 | |
11:43
linkable6 joined
|
|||
andinus | it eats up all memory on my system too, rakudo 2021.02 | 11:43 | |
codesections | yeah. I just wasn't sure if .{*} would have the same semantics as .values or as .{0..5} | ||
lizmat | looks like there's no laziness check on the indexing like that | 11:44 | |
andinus | what is it trying to do? index from 0..Inf? | ||
lizmat | yup | 11:45 | |
and build a result list of empty containers | |||
andinus | ah makes sense, i was wondering why it was eating memory | ||
lizmat | m: my %h; %h<a b c> = 1,2,3; dd %h | ||
camelia | Hash %h = {:a(1), :b(2), :c(3)} | ||
lizmat | that builds a list of 3 empty containers, and then assigns the 1,2,3 list to those containers | 11:46 | |
m: my %h = :42a, :666b; dd %h{ <a b>.lazy } # that should probably complain about not being able to index using a lazy list | 11:47 | ||
camelia | (42, 666) | ||
11:47
xinming joined
|
|||
Frozenset | codesections: I see, thanks for the explanation. I thought list of lists but not list of list of lists :ÄŸ | 11:47 | |
and with the sort approach I think a care is needed if a key exceeds 10 since it does string comparison | 11:48 | ||
lizmat | then sort on +*.value | 11:53 | |
11:55
frost left
11:56
frost left
11:59
squashable6 left
12:02
reportable6 left
12:05
reportable6 joined
|
|||
CIAvash | samcv: or you could tell them to use Chroma instead of Pygments and you would only need to remove one space to get it highlighted correctly 😀 (using the latest commit) | 12:13 | |
12:46
Xliff joined
13:01
squashable6 joined
|
|||
Frozenset | Xliff: Your last two Seq examples do give X::Seq::Consumed if you change the variable to be sigilless | 13:10 | |
m: my \a = Seq(1, 2, 3); a.^name.say; a.elems.say; .say for a; .say for a; | |||
camelia | Seq The iterator of this Seq is already in use/consumed by another Seq (you might solve this by adding .cache on usages of the Seq, or by assigning the Seq into an array) in block <unit> at <tmp> line 1 3 1 2 3 |
||
Frozenset | therefore I don't think "Seq is an Iterable, not an Iterator" is the reason | 13:11 | |
so I guess assigning it to a $-sigiled variable has a similar effect as assigning it to a @-sigiled variable | 13:12 | ||
but I might be wrong altogether | 13:14 | ||
13:17
Frozenset left
13:24
b2gills left
13:25
xinming left
13:26
xinming joined
13:51
tejr left
13:53
tejr joined
14:04
codesections left
14:19
gordonfish left
15:04
squashable6 left
|
|||
andinus | does adding .race.cache to loops make any difference? | 15:17 | |
i have a for loop performing multiple operations on lists of lists (hence .cache) | |||
16:04
evalable6 left,
linkable6 left
16:06
linkable6 joined
16:07
squashable6 joined
17:07
coverable6 left,
committable6 left,
notable6 left,
shareable6 left,
statisfiable6 left,
reportable6 left,
bisectable6 left,
nativecallable6 left,
releasable6 left,
linkable6 left,
bloatable6 left,
tellable6 left,
unicodable6 left
17:08
nativecallable6 joined,
shareable6 joined,
bloatable6 joined
17:09
tellable6 joined,
committable6 joined,
coverable6 joined
17:10
b2gills joined
17:33
Sgeo joined
17:37
neshpion joined
17:53
gordonfish joined
17:56
gordonfish left,
gordonfish joined
18:09
notable6 joined,
releasable6 joined
18:10
bisectable6 joined
|
|||
japhb | andinus: Terminal::Print doesn't work on obsd? That's news to me! What doesn't work? Unrecognized terminal or somesuch? | 18:26 | |
19:06
evalable6 joined
19:08
unicodable6 joined
19:31
masak_ left,
tadzik left
20:05
reportable6 joined
20:08
linkable6 joined
20:10
statisfiable6 joined
|
|||
moon-child | hmm, trying to test, I get 'MoarVM panic: Memory allocation failed; could not allocate 21752 bytes' building rakudo | 20:22 | |
El_Che | not the last!: git-stars.com/languages/7 | 20:29 | |
(but below Cobol: sowry) | |||
:) | |||
perryprog | Wow we are really low. Even protobuf beats us. | 20:34 | |
20:34
matti_ left
|
|||
perryprog | I mean, Cobol beating us makes sense... it's so versatile! pbs.twimg.com/media/Cfd28h6UIAAjYF...name=large | 20:35 | |
moon-child | El_Che: I don't think that's something ot take seriously | 20:44 | |
it lists 'xml' | 20:45 | ||
and 'v' | |||
and apparently 'no language' is the #5 most popular programming language on github | |||
perryprog | GitHub stars are the only thing that matters in determining the programming language to use for a specific application, though. | ||
Ohh, I thought that was sorting language repos by stars, not by usage. Doh. | 20:46 | ||
moon-child | perryprog: aws.amazon.com/blogs/opensource/se...-software/ | ||
perryprog | Never thought I'd hear the words 'severless' and 'cobol' in the same sentence, much less in the same phrase. | ||
21:01
Manifest0 left
|
|||
El_Che | moon-child: i know both v and people tha program in xml (dir-xml, poor souls) | 21:15 | |
21:23
lizmat left
21:24
lizmat joined
21:47
lucasb joined
|
|||
[Coke] | hurm. new failure trying to install cro on OS X (It just hung at one point) | 21:47 | |
installed deps-only so I could quickly repeat cro issues - seeing multiple ro] # Check service up attempt 1: connection refused | 22:05 | ||
22:09
Manifest0 joined
|
|||
[Coke] | it hung after the 4th one | 22:12 | |
22:37
RakuIRCLogger joined
22:40
Geth left,
Geth joined
23:31
RakuIRCLogger left
23:33
lizmat left
23:34
lizmat joined
23:37
gcd joined
23:40
RakuIRCLogger joined
|