|
Parrot 3.6.0 "P�jaros del Caribe" released | parrot.org | Log: irclog.perlgeek.de/parrot/today | #parrotsketch meeting Tuesday 19:30 UTC Set by moderator on 13 August 2011. |
|||
| dalek | nxed/multi_syntax: d573a38 | Whiteknight++ | / (2 files): the new multi syntax overrides, and is ignorant of, a more manual approach |
00:02 | |
| nxed/verbose_diagnostics: d00e872 | Whiteknight++ | / (2 files): Merge branch 'nf_master' into verbose_diagnostics |
|||
| nxed/multi_syntax: ad9459c | Whiteknight++ | winxedst1.winxed: Make sure to initialize the is_multi field, so we can avoid null pmc accesses |
00:07 | ||
|
00:13
preflex_ joined
|
|||
| dalek | nxed/verbose_diagnostics: 9f746d1 | Whiteknight++ | winxed.winxed: subs_by_flag -> subs_by_tag. explicitly return null when we can't load the packfile |
00:18 | |
| lucian | bah, can't fix this damned bug | 00:19 | |
| i can't for the life of me figure out why this happens | 00:20 | ||
| this test fails github.com/lucian1900/puffin/blob/...ect.t#L126 | 00:34 | ||
| very odd | |||
| whiteknight | let me look | 00:54 | |
| ...loading...slowly... | 00:55 | ||
|
00:55
darbelo joined
|
|||
| whiteknight | lucian: okay, I see the test now. What part of it fails? The assertion? | 01:03 | |
| lucian | whiteknight: yeah, i.bla is null | ||
| whiteknight | darn | 01:04 | |
| lucian | apparently tracking nulls on parrot is hard | ||
| whiteknight | what do you mean? | ||
| lucian | anyway, type.winxed:t.__getattribute__ gets called for that | 01:05 | |
| whiteknight: that null has to come from somewhere, i never explicitly return null | |||
| whiteknight | ah, okay | ||
| dalek | sella: 69aef39 | Whiteknight++ | src/ (5 files): start updating the Contract library with new features and updated standards |
01:07 | |
| sella: 2e30dc5 | Whiteknight++ | s (8 files): Rename Contract library to Assert |
|||
| lucian | whiteknight: i probably need to test __getattribute__ failures better | 01:08 | |
| dalek | sella: 0111611 | Whiteknight++ | s (2 files): Add some experimental higher-order functions to the core library. Inspired, in part, by underscore.js and other sources |
01:15 | |
| sella: 7b779df | Whiteknight++ | src/ (2 files): Add forward-declarations for Function routines to Core.include. Fix compilation in assert |
01:26 | ||
| lucian | hmm failure to find attributes does throw the expected exception | ||
| Coke finds the release guide probably more convoluted than strictly necessary. | 01:42 | ||
| anyone planning on committing anything anytime soon? | 02:00 | ||
|
02:01
RobertLJ_ left
|
|||
| Coke | (I'm testing a 3.7 release candidate right now.) | 02:01 | |
| dalek | p/nfa: ef8359b | pmichaud++ | src/Q (2 files): Add :rxtype<ws> to differentiate meta whitespace from direct calls to <.ws>. |
02:18 | |
| p/nfa: 6d9e44e | pmichaud++ | src/NQPQ/Actions.pm: QRegex::Actions::buildsub no longer sets :blocktype('method') by default. |
|||
| p/nfa: 88b34ff | pmichaud++ | / (3 files): Initial version of nfa generation. Build nqpq by default for now to make testing easier. |
|||
| p/nfa: d3798ba | pmichaud++ | src/QRegex/NFA.nqp: Relabel NFA_* constants to EDGE_*. Add a simple __dump() method to make it easier to visualize the NFA. |
|||
| p/nfa: 8c346b0 | pmichaud++ | src/PAST/NQP.pir: Add nqp::sprintf opcode. |
|||
| p/nfa: 94795ee | pmichaud++ | src/QRegex/ (2 files): Initial protoregex nfa generation and merging. |
|||
| p/nfa: 742b33a | pmichaud++ | src/QRegex/ (2 files): Add NFA.run -- code to run the NFA on a given input string. |
|||
|
02:23
rohit_nsit08 joined
|
|||
| Coke | so, where can someone on OS X get sha256sum ? | 02:25 | |
| :P | 02:26 | ||
| gerd: you about? | 02:30 | ||
| msg kid51 did you cut the release on your mac? | 02:35 | ||
| aloha | OK. I'll deliver the message. | ||
| tcurtis | Coke: is there any difference between sha256sum and shasum -a 256? | 02:42 | |
| Coke | tcurtis: I have no idea whatsoever. | ||
| (looks like shasum is a perl script) | 02:43 | ||
| Coke is done for the night, I'll just do the release on a linux box tomorrow. | 02:44 | ||
| dalek | website: soh_cah_toa++ | SOD: Symbolic Opcode Description | 02:59 | |
| website: www.parrot.org/content/sod-symbolic...escription | |||
|
03:48
sri joined,
cotto joined
03:49
darbelo joined
|
|||
| dalek | p/nfa: 505a3d7 | pmichaud++ | src/QRegex/NFA.nqp: Add anchor and enumcharlist to QRegex::NFA. |
04:02 | |
| p/nfa: ef5cfd3 | pmichaud++ | src/QRegex/NFA.nqp: Some small fixes to anchors and eos handling. |
|||
| p/nfa: 4903492 | pmichaud++ | src/QRegex/Cursor.nqp: Code to invoke protoregexes in (decreasing) order of longest match. |
|||
| cotto | ~~ | 04:20 | |
| dalek | rrot: b9fb194 | cotto++ | docs/dev/profiling.pod: temporarily delete an unfinished section in the profiling doc |
04:25 | |
|
04:37
tewk_ joined
04:46
tewk joined
|
|||
| ttbot | Parrot b9fb194a MSWin32-x86-multi-thread make error tt.taptinder.org/cmdinfo/44596 | 04:47 | |
| cotto | lolwut | 04:48 | |
| Can someone try to repeat that? | 05:20 | ||
|
05:33
SHODAN joined
05:50
fperrad joined
06:15
SHODAN joined
06:41
cotto joined
|
|||
| cotto | If the release hasn't been cut, we probably shouldn't send out a tarball that installs a known-horribly-broken parrot_debugger. | 07:01 | |
| aloha, clock? | 07:03 | ||
| aloha | cotto: LAX: Tue, 00:03 PDT / CHI: Tue, 02:03 CDT / NYC: Tue, 03:03 EDT / UTC: Tue, 07:03 UTC / LON: Tue, 08:03 BST / BER: Tue, 09:03 CEST / TOK: Tue, 16:03 JST / SYD: Tue, 17:03 EST | ||
| dalek | p/nfa: 8ea85a9 | pmichaud++ | src/QRegex/NFA.nqp: Refactor mergesubrule a bit. |
07:15 | |
|
07:18
woosley joined
07:28
mj41 joined
08:28
Kulag joined
08:44
cotto joined
09:02
bubaflub joined
09:25
nine joined
|
|||
| nine | Hi! Would now be a good time to start implementing threading support in Rakudo or is Parrot now ready for that yet? | 09:27 | |
|
09:30
Tene joined
09:41
lucian joined
|
|||
| cotto | nine, it needs a lot of thought and design work, but we've been complaining about Parrot's poor threading support for a very long time. | 09:47 | |
| nine | cotto: I'm not quite sure what to make of that answer :) | 09:50 | |
| cotto | nine, I don't think the Parrot threading code is nearly mature enough, so Rakudo would end up having to roll its own. | 09:51 | |
| (initially misparsed your question) | |||
| nine, if you want to help improve Parrot's threading model (so that Rakudo can start using it), that'd be most welcome. | |||
| nine | cotto: tempting :) It's just a matter of time having a full time job and a study and having picked concurrency support for Rakudo as topic for my bachelor's paper due in February. | 09:55 | |
|
10:09
cotto joined
10:12
ligne joined
10:24
RobertLJ joined
10:58
NotFound joined
|
|||
| NotFound | Hi | 10:58 | |
| cotto | hi NotFound | 11:02 | |
| aloha, clock? | 11:14 | ||
| aloha | cotto: LAX: Tue, 04:14 PDT / CHI: Tue, 06:14 CDT / NYC: Tue, 07:14 EDT / UTC: Tue, 11:14 UTC / LON: Tue, 12:14 BST / BER: Tue, 13:14 CEST / TOK: Tue, 20:14 JST / SYD: Tue, 21:14 EST | ||
| dalek | nxed: 250bbe7 | Whiteknight++ | winxedst1.winxed: Add multi funcitionality to class methods. |
11:19 | |
| nxed: b239fab | Whiteknight++ | t/advanced/10multi.t: update multi tests |
|||
| nxed: c23371e | Whiteknight++ | / (2 files): Merge branch 'nf_master' into multi_syntax |
|||
| nxed: d573a38 | Whiteknight++ | / (2 files): the new multi syntax overrides, and is ignorant of, a more manual approach |
|||
| nxed: ad9459c | Whiteknight++ | winxedst1.winxed: Make sure to initialize the is_multi field, so we can avoid null pmc accesses |
|||
| nxed: 6f516b1 | NotFound++ | / (3 files): Merge pull request #4 from Whiteknight/multi_syntax Multi functions and methods |
|||
| cotto | looks like someone's waking up | ||
| seen not_gerd | 11:27 | ||
| aloha | not_gerd was last seen in #parrot 2 days 21 hours ago saying "looks good to me". | ||
| dalek | nxed: c6ac75c | NotFound++ | winxedst1.winxed: work around stage 1 limitations to allow multi tests pass with make test1 |
11:33 | |
|
11:49
JimmyZ joined
|
|||
| dalek | nxed: 8f25134 | NotFound++ | winxedst1.winxed: use separate methods to get and set the is_multi flag, and recognize multi declarations on reopened namespaces |
11:55 | |
|
12:03
whiteknight joined
|
|||
| whiteknight | good morning, #parrot | 12:04 | |
| dalek | nxed: 2cd7e1a | NotFound++ | t/advanced/10multi.t: tests for multi in reopened namespace |
12:05 | |
| cotto | hi whiteknight | ||
| NotFound | whiteknight: I've merged the multi push request and fixed a few things. | ||
| lucian | bah, so if i want to participate in a boolean context i must implement get_integer ?! | 12:10 | |
| what's get_bool for, then | 12:11 | ||
| lucian think it's that same problem again | |||
| whiteknight | NotFound++ | 12:12 | |
| NotFound | lucian: the problem lies in the "boolean context". | ||
| whiteknight | NotFound: How was your fiesta? | ||
| lucian | NotFound: yes, i remember | 12:13 | |
| very annoyin | |||
| NotFound | whiteknight: good, seeing old friedns, eating, drinking, dancing... | ||
| whiteknight | NotFound: Sounds like a lot of fun | ||
| NotFound | And wearing a Mazinger-Z t-shirt X-) | 12:14 | |
| lucian: in winxed you can use the ? operator to force a boolean context: (a ? 1 : 0) | 12:16 | ||
| lucian | NotFound: yeah, i realise. the problem is that many other functions expect ints | ||
| like Rosella.Test's assert.is_equal | |||
| whiteknight | yeah, that's a limitation of Parrot | 12:17 | |
| lucian | very annoying | ||
| whiteknight | why would anybody ever need to use a boolean outside of a normal integer? | ||
| lucian | because it's semantically correct | 12:18 | |
| NotFound | We don't have a native boolean type so we can't provide a box/unbox mechanic that do the right thing. | ||
| lucian | NotFound: exactly. let's have one | 12:19 | |
| i guess i'll use the ? : workaround in tests for now | 12:20 | ||
| whiteknight | We do have a Boolean PMC type, although I always feel like it's pretty heavy-weight to hold a single bit | ||
| NotFound | lucian: I don't oppose the idea. Can you create an RFC ticket for it? | ||
| lucian | NotFound: in trac? | 12:21 | |
| NotFound | lucian: yes | ||
| lucian | ok, i'll put it in the todo list | ||
| whiteknight: that shouldn't be a problem, if everything actually used it | |||
| NotFound | Even if it gets rejected, it may help to clarify when get_bool should be used. | 12:22 | |
| lucian thinks all types should be boxed, let the JIT unbox things | |||
| whiteknight | lucian: Yeah, I know | ||
| We had talked a long time ago about having a get_bool and set_bool opcodes, as wrappers around the vtables of the same name | |||
| If we did that, we could cut out a hell of a lot of stupid jump opcodes. | 12:23 | ||
| NotFound | I know, but a ticket is better than isolated talks. | ||
| whiteknight | yes | 12:24 | |
| ticket++ | |||
| cotto | +1 | ||
| lucian | campaign name suggestions? | 12:25 | |
| to put on the ticket | 12:26 | ||
| whiteknight | ? | 12:32 | |
| lucian | whiteknight: ticket name | 12:33 | |
| whiteknight | oh, whatever. It's not important | 12:36 | |
| if it's bad, it can be changed | |||
| lucian | trac.parrot.org/parrot/ticket/2178 | 12:37 | |
| whiteknight | lucian++ | 12:38 | |
|
12:42
bluescreen joined
|
|||
| lucian | NotFound: i think i have a feature request for winxed | 12:44 | |
| NotFound: i have a lot of code like "if(exists foo['bar']){ var bar = foo['bar'] ... }" | 12:45 | ||
| something like if-let would help, a conditional binding | 12:46 | ||
| or maybe something like Groovy's/CoffeeScript's soaking operator ?. | |||
| whiteknight | lucian: I'm not familiar with if-let. example syntax? | 12:48 | |
| lucian | whiteknight: clojuredocs.org/clojure_core/clojure.core/if-let | 12:49 | |
|
12:49
darbelo joined
|
|||
| lucian | in particular clojuredocs.org/clojure_core/clojur...xample_165 | 12:50 | |
| whiteknight | bleh. I hate S-expressiony syntax | ||
| lucian | whiteknight: :P | ||
| whiteknight | okay, can you give me an example of what you think it should look like in winxeD? | 12:51 | |
| lucian | if(var a = foo['bar']) | ||
| but that's a little evil | |||
| dalek | TT #2178 created by lucian++: Parrot lacks a boolean type | 12:52 | |
| TT #2178: trac.parrot.org/parrot/ticket/2178 | |||
| lucian | ?. is less general | ||
| so intead of foo.bar.baz | |||
| you could do foo?.bar?.baz | |||
| whiteknight | like a defined-or operator? | ||
| lucian | and if bar didn't exist, or baz didn't exist, the entire expression would return null | ||
| whiteknight: yes, sort of | |||
| whiteknight | var a = foo['bar'] defined-or "def"; | 12:53 | |
| lucian | var a = foo['bar'] ?or "def"; | ||
| the closest to winxed syntax is the coffeescript feature | 12:54 | ||
| NotFound | You mean the equivalent of: (exists foo["bar"] ? foo["bar"] : null) | ||
| lucian | jashkenas.github.com/coffee-script/ search for "Existential operator" | 12:55 | |
| NotFound: yes, sort of. but without repeating foo['bar'] ideally | 12:56 | ||
| NotFound | Sounds useful, but I don't know how easy can be to chain it. | ||
| lucian | me neither, at least not on hashes | ||
| maybe foo?['bar'] | |||
| and foo?.bar for attributes | |||
| whiteknight | parsing that is going to conflict with the current ? syntax | 12:58 | |
| or, we would have to add a bunch of new operators, '?[', '?.', etc | 12:59 | ||
| NotFound | A possible way is to use the ? : operator omiting the second operand, but I'm not sure about its readability, | ||
|
12:59
cotto joined
|
|||
| whiteknight | yeah | 13:00 | |
| NotFound | foo["bar"] ? : null | ||
| whiteknight | that seems...tricky | ||
| NotFound | Yes, and its parsing can be ambiguous. | 13:01 | |
| lucian | seems confusing | ||
| i like adding ?[ and ?. operators | |||
| so "foo?['bar']" would be sugar for "exists foo['bar'] ? foo['bar'] : null" | 13:02 | ||
| NotFound | That will conflict with the ? operator. Maybe [? and .? | ||
| lucian | wouldn't that conflict with [ true ? 1 : 0 ] | 13:03 | |
| also, it might be advantageous to have similar syntax with other js-like languages (CS and Groovy) | 13:04 | ||
| NotFound | Note that for attributes the thing is not so easy, it must catch an exception. | ||
| lucian | yes, i realise | ||
| i've yet to feel a need for it on operators | |||
| NotFound | No, [? and .? currently are syntax errors, the ? operator needs an operand. | 13:05 | |
| lucian | right | ||
| do hashes have a method for silently failing | 13:06 | ||
| ? | |||
| NotFound | exists | ||
| lucian | i mean a getter that silently fails | 13:07 | |
| NotFound | lucian: that depends on what the PMC does and what you need to know. exists can be true if the value is null. | 13:08 | |
| lucian | hmm | ||
| NotFound | And hashes can return a null pmc for both cases. | ||
| Non existent, or set to null. | 13:09 | ||
|
13:10
Tene joined
|
|||
| lucian | NotFound: it might be useful to show you the ugly code github.com/lucian1900/puffin/blob/...winxed#L92 | 13:13 | |
|
13:19
darbelo joined
|
|||
| NotFound | lucian: that cases seems to be a bit more complicated than exists-or-null | 13:22 | |
| lucian | it is, indeed | 13:23 | |
| but bind-if-exists would help | 13:24 | ||
|
13:26
ambs joined,
baest joined
|
|||
| Coke | Anyone want to take a stab at fixing the release process on os x before I get off work today and do the release? ;) | 13:27 | |
| cotto | Coke, I have a concern. parrot_debugger --help segfaults pretty reliably and I don't feel good about letting that escape. | 13:31 | |
| that said, it did the same thing in 3.6.0 | |||
| Coke | cotto: ok. I don't have time to fix it, but you have several hours before I get to a point where I can cut a release today. | ||
| (one of the reasons I wanted to do this @midnight. ah well) | 13:32 | ||
| cotto | Coke, ok | ||
| NotFound | Coke: It's fine to update the winxed snapshot? | 13:34 | |
| Coke | NotFound: I have no idea what sort of support implications that has, if any. so, go for it? | ||
| NotFound | I'll go. | 13:35 | |
| lucian loves the winxed snapshot | |||
| it makes boostrapping puffin from scatch last a good 5mins less | |||
| or maybe more | |||
| cotto | awesome. It's trying to treat --help as a file | 13:36 | |
| why are we shipping this? | 13:37 | ||
| Coke | cotto - just remove it from the install target. | 13:38 | |
| cotto | I'll do that. | ||
| Coke | (also, please add a note to NEWS) | 13:39 | |
| cotto | that too | ||
| dalek | TT #2179 created by "mzoppet@…>++: Bug in setup-parrot-3.6.0.exe broke PATH | ||
| TT #2179: trac.parrot.org/parrot/ticket/2179 | |||
| Coke | NotFound: ditto, please update news mentioning the new winxed version #. | ||
| who generated a windows installer for parrot? | 13:40 | ||
| fperrad? | |||
| cotto | trac-- | ||
| though at least the information is there | 13:41 | ||
| dukeleto, ping | 13:44 | ||
| I should run parrot_debugger's removal by him first. | |||
| atrodo | =~ | ||
| cotto | hio atrodo | 13:45 | |
| atrodo | Good, well, i assume it's evening for you cotto? | ||
| cotto | atrodo, you assume correctly | 13:46 | |
| it feels wrong being in a timezone so different from most Parrot hackers | |||
| atrodo | YAPC::EU going well? | ||
| cotto | quite. lots of facetime with rakudo hackers | ||
| finally getting to meet jnthn and masak | 13:47 | ||
| riga is charming | 13:48 | ||
| atrodo | Sounds like a good time. Get much hacking in? | ||
| cotto | more thinking than hacking, but lots of that. good feedback on m0 too | 13:49 | |
| dalek | nxed: 747b557 | NotFound++ | / (2 files): update NEWS and set version to 1.1.0 |
||
| whiteknight | NotFound++ | 13:50 | |
| oh, I'm very happy that the multi patch is going to be in this release. Rosella will be able to make immediate use of it | 13:51 | ||
| cotto | seen dukeleto | ||
| aloha | dukeleto was last seen in #parrot 1 days 20 hours ago saying "endeavormac: they seem "unlimited", but of course, you will eventually not be able to store any more due to memory constraints". | ||
| cotto | whiteknight, care to offer a second opinion on parrot_debugger? | 13:52 | |
| it segfaults when you pass --help, and has done so since at least 3.6.0 | |||
| I'm tempted to remove it on that basis, though it looks like it does that because it does excessively simple option parsing | 13:53 | ||
| *remove it from the install | |||
| whiteknight | of course remove it. Does it do anything useful? Is it workable? Does it provide anything that users are relying on? | 13:55 | |
| if the answer to all those questions is "no", kill it | |||
| cotto | I hope not. | 13:56 | |
| whiteknight | and do a little victory dance. | ||
| cotto | either way, it's easily reversible | ||
| whiteknight | yeah | ||
| my forcast: deleting, with a chance of awesome | |||
| atrodo | what about just deleting it for release, save the final decision for a less crunched time? | 13:57 | |
| cotto | too late | ||
| dalek | rrot: 73135c5 | cotto++ | / (2 files): don't install parrot_debugger it may work, but segfaulting on --help is a non-starter |
||
| cotto goes afk to learn about Go | |||
| lucian | cotto: on Go, i found this useful www.syntax-k.de/projekte/go-review | 13:59 | |
| dalek | nxed/version_1_1: fd223f9 | NotFound++ | pir/winxed_compiler.pir: update installable compiler |
14:00 | |
| rrot: e4ff789 | NotFound++ | / (2 files): update winxed snapshot to 1.1.0 and add its news |
14:08 | ||
| cotto | lucian, very | 14:11 | |
| lucian | yay for DRY | 14:18 | |
| ttbot | Parrot 73135c53 MSWin32-x86-multi-thread make error tt.taptinder.org/cmdinfo/44650 | 14:20 | |
| whiteknight | FFFFUUUUUU | 14:21 | |
| win32-- | |||
| let me fire up the build now | 14:22 | ||
| cotto | it did the same thing after I made a pod change in a non-code file earlier today | ||
| whiteknight++ | |||
| whiteknight | "syntax error at config/auto/arch.pmc line 115, near ')'" | 14:23 | |
| so that's not good | |||
| "syntax error at config/auto/arch.pmc line 115, near '}'" | |||
| sorry | |||
| config/auto/arch.pm has too many errors | |||
| so there's the problem | |||
| software.intel.com/en-us/blogs/2011...-has-come/ | 14:24 | ||
| cotto | whiteknight, so Configure.pl fails but the build proceeds anyway? | 14:26 | |
| whiteknight | it's not building here | ||
| configure fails, that's it | |||
| hold on, let me try something else | 14:27 | ||
| oh wait, I think I had a messed up local setting. It's building now | |||
| cotto | looks like removing parrot_debugger from the install didn't cause any surprises | ||
| sounds like progress | 14:28 | ||
| whiteknight | progress++ | ||
| cotto | (boring releases)++ | ||
| whiteknight | NotFound: ping | 14:31 | |
| cotto | allison, ping | ||
| whiteknight | everybody: ping | 14:32 | |
| allison | cotto: pong | ||
| cotto | allison, Parrot's gradually moved from thinking of itself as being close to hardware to being more abstract. | ||
| I'm thinking about moving back toward hardware with M0 and would like to make sure that I'm not going down the same road we've already been down. | |||
| allison | cotto: the thing to watch out for is portability | 14:33 | |
| cotto | I'm looking to reduce the impedance mismatch between M0 and hardware so that the generated code will be easier to make efficient. | ||
| allison | cotto: M0 shouldn't be too closely tied to any one architecture | ||
| cotto | a minimalist instruction set guarantees that we'll be generate poor code without an optimizer, which isn't optimal | ||
| allison | but, on the other hand, since M0 is tiny, it makes it much, much easier to port | 14:34 | |
| cotto | allison, absolutely | ||
| allison | so, it's totally possible to have some parts that are closely tied to one architecture | ||
| the Linux Kernel is a good model here | |||
| cotto | yes | ||
| that's definitely part of the charm of a small VM | |||
| allison | they make a clear distinction between the "general" parts and the "architecture dependent" parts | ||
| (even to the point of segmenting off architecture-dependent directories | 14:35 | ||
| What you don't want is a confused mish-mash of what is or isn't architecture-dependent | |||
| lucian | allison: the point here is that if M0 is too small, certain constructs will have to be composed, when they might be already existent on most platforms natively | ||
| cotto | I'd been thinking of separate interpreters, but that's a good way to do it. | ||
| lucian, yes | 14:36 | ||
| allison | so, if a component is architecture dependent, it is segmented off and customized for all architectures | ||
| lucian | so all modern archs have vector units | ||
| allison | lucian: right, it should be totally allowed to have an M0 op be "straight to native" on some platforms | ||
| lucian | but M0 has nothing to support that | ||
|
14:37
darbelo joined
|
|||
| whiteknight | If M0 is the common lowest-level language, what we need are platform-dependent optimizers and platform-specific JIT | 14:37 | |
| in addition to maybe a suite a higher-level optimizations which can operate irregardless of platform | |||
| allison | but, we also want to steer clear of the pain of the old JIT, that involved hand-crafting a huge number of statements for each architecture | ||
| lucian | whiteknight: it seems to me that interesting platforms already have a similar set of features. so platform-specific (non-peephole) optimisers shouldn't be necessary | 14:38 | |
| allison | (again, the beauty of the small op set in M0) | ||
| cotto | allison, can you shed some light on Parrot's move away from thinking as itself as close to hardware to more abstract | 14:39 | |
| whiteknight | lucian: Right, that's what I'm talking about. Platform-specific peephole optimizers, mostly | ||
| allison | cotto: I'm not sure it ever did think of itself as truly close to the hardware | ||
| cotto: its background is in interpreters like Perl | |||
| cotto | allison, ok. | ||
| dukeleto | we already deleted a platform-specific JIT. Some parts of a JIT can be platform specific, but maintaining platform-specific JIT opcodes again is not a goal we should have | ||
| allison | cotto: it has certainly been inspired by hardware models all along (register-based, etc) | 14:40 | |
| cotto | allison, definitely yes wrt a small op set. Still, even 100 is reasonable. | ||
| lucian | whiteknight: and any existing jit framework has peepholes already written | ||
| whiteknight | every JIT has to be tied to the platform in some way. You can generate "general" machine code | ||
| can't | |||
| lucian | whiteknight: except when it can, i.e. llvm ir, nanojit ir | 14:41 | |
| whiteknight | if we want to avoid writing platform-specific JIT code, we need to use an existing JIT that somebody else went through the pain of writing | ||
| ttbot | Parrot e4ff7891 MSWin32-x86-multi-thread make error tt.taptinder.org/cmdinfo/44667 | ||
| lucian | the way i see it, a goal for M0 should be straightforward, efficient mapping to at least LLVM IR | ||
| allison | whiteknight: indeed, but you can compose JIT code for macro-level ops from JIT code for M0 ops | ||
|
14:41
JimmyZ joined
|
|||
| whiteknight | there will be pain, the question is how little of it we take upon ourselves | 14:41 | |
| allison | whiteknight: which radically reduces the effort of JITting on a new platform | ||
| whiteknight: what our previous JIT proved to us is that we can't rely on anyone else to do the porting either | 14:42 | ||
| whiteknight: so, it's either ourselves, or no one | |||
| lucian | allison: but that's a pasting jit, and it sort of sucks :) | ||
| allison | lucian: it's better than no JIT :) | 14:43 | |
| cotto | I'd like to see different backends that use e.g. llvm, gnu lightning, etc. cpu-specific code is definitely out | ||
| allison | lucian: and more can be built on top of it | ||
| whiteknight | What sucked most about our previous JIT was maintainability. Every time we added a new op, or changed an existing op, we needed to recreate the exact same changes in several files for several platforms | ||
| lucian | cotto: i don't think that's a realistic goal | ||
| dukeleto | firefox uses both nanojit and nitro, for tracing and method-based JITting. It chooses between them via heuristics about hot code | ||
| whiteknight | and when you have 1300+ ops and variants, that's a nightmare | ||
| cotto | whiteknight, yes. If we can keep m0 mostly static, much pain goes away. | ||
| allison | whiteknight: yup, 1300+ is unworkable for manual JITting | 14:44 | |
| lucian | dukeleto: yes, it defaults to tracing (with nanojit) and uses method-jit (nitro) for generally hot methods | ||
| allison | whiteknight: also, our previous JIT wasn't actually "just-in-time" | ||
| lucian | dukeleto: with a slightly different approach it's possible to use only tracing (what PyPy do) | ||
| whiteknight | What we need in a JIT is all the bells and whistles: We need optimizations, tracing, type specialization, and other details. We would never have gotten there with the old architecture | ||
| allison | whiteknight: it was pre-compiled | ||
| whiteknight | a JIT that doesn't do aggressive type-specialization is worthless in the modern world | 14:45 | |
| dukeleto | and spidermonkey (the main javascript vm for firefox) has something call interpolines (interpreter trampolines) which are tiny bits of platform-specific code (possibly assembly). I am still trying to fully understand it, but it seems to be the only platform-specific part of spidermonkey | ||
| cotto | whiteknight, eventually, yes. We can still get meaningful performance just by using a dumb jit. | 14:46 | |
| dukeleto | whiteknight: the mozilla people call it "type inference" and have been breaking new ground in that area. They are doing *static* type inference for Javascript, which is kind of amazing. | ||
| whiteknight | cotto: all a dumb JIT is going to do is reduce op dispatch costs | ||
| lucian | whiteknight: the effort of writing a good JIT may dwarf the effort of supporting x86, x86-64 and ARM (the only relevant platforms) | ||
| v8 and PyPy have certainly gone that route | |||
| cotto | whiteknight, which will be meaningful for small ops | ||
| whiteknight | lucian: right. That's why I think that our best bet is still to use an existing JIT | ||
| cotto | allison, thanks | 14:47 | |
| whiteknight | Compare how many coders we could devote 100% to a complete in-house JIT infrastructure, against how many coders Mozilla can throw at the problem, or LLVM | ||
| lucian | whiteknight: sure, if possible. but i've yet to see a successful project use an off-the-shelf jit | ||
| allison | cotto: anytime, and thanks for thinking of it | ||
| whiteknight | lucian: if we devote two coders, some of the time, to brewing our own, it will not be successful either | ||
| dukeleto | from what I can see in Firefox, they have easily spent dozens to hundreds of dev-years already on their JITs, and they didn't develop it from scratch. They built on existing tech (nanojit and nitro) | ||
| lucian | whiteknight: of course, which is why we should choose two platforms and try | 14:48 | |
| whiteknight | and that's two coders without any distractions, without a deprecation policy in the way, and without real life botching the schedule | ||
| dukeleto | whiteknight: indeed. Writing our own JIT from scratch is just a non-starter | ||
| allison | someone recently asked me if v8 JIT could be split out as a reusable library for Parrot | ||
| whiteknight | lucian: I don't care if it's two or whatever. We do have to start from somewhere | ||
| allison | I don't know | ||
| lucian | allison: no | ||
| dukeleto | allison: the v8 JIT is very specialized to Javascript | ||
| atrodo | allison> I was hoping for a better answer | ||
| whiteknight | allison: I've looked at v8 before. I think it's too JS dependent | ||
| lucian | allison: others have asked before, it's not realistic | ||
| allison | on the whole, I think we'll be doing well to support a few existing JIT libraries | 14:49 | |
| and see what works best | |||
| lucian | allison: to me, that seems about as hard as supporting a few archs | ||
| whiteknight | We have to pick one to start with, and I think we've already made a good decision with LLVM | ||
| atrodo | allison> However, if, in a magical world, m0 existed on as a JS backend, that could be | ||
| cotto | rolling our own is a non-starter. I hope no one thinks I'm suggesting that. | ||
| lucian | all we'll get from a JIT library is cross-platform IR and a peephole optimiser | ||
| dukeleto | whiteknight: have we? do we really do much with LLVM yet? | ||
| lucian | whiteknight: uh, everyone who's tried llvm has failed so far | 14:50 | |
| allison | atrodo: Parrot already has several JS implementations, so yes, one possible use case would be v8 as a JIT backend for Parrot *only* with JS | ||
| whiteknight | dukeleto: We don't do anything with LLVM yet, but it's as good an option as any. It's maintained, and it's not hopelessly tied to a particular language or semantic | ||
| lucian | whiteknight: it's just very, very bad | ||
| cotto | lucian, great. We can learn from them. | ||
| allison | whiteknight: well, LLVM as a static compiler is well maintained | ||
| lucian | whiteknight: and it is hopelessly tied to C semantics | ||
| allison: indeed. and jus tthat | |||
| whiteknight | Parrot is written in C | ||
| allison | whiteknight: LLVM as a JIT is not, which the unladen-swallow guys definitely proved | ||
| atrodo | allison> I think you misunderstood. Imagine a m0 interp written in js | 14:51 | |
| lucian | both PyPy and unladen swallow have shown that LLVM sucks for JITs, and is very buggy on top | ||
| cotto | atrodo, I have been. | ||
| allison | whiteknight: (they also improved it, but it has a lot of work needed) | ||
| whiteknight | so then what are the alternatives? We need at least one JIT, if we plan to support more than one | ||
| lucian | whiteknight: right, but HLLs aren't C | ||
| whiteknight | the one is where we need to start | ||
| allison | atrodo: I try to take JS as a backend language seriously, but I just can't | ||
| lucian | rubinius are having moderate success with llvm | ||
| whiteknight | so what's the first one? v8 and most of the current-gen JS ones are out | ||
| lucian | but they're only using it for assembly | ||
| they do their own optimisations | |||
| whiteknight | LLVM is apparently not popular | 14:52 | |
| allison | atrodo: no matter how good the VM gets, the language itself is for writing web pages | ||
| atrodo: not a good general-purpose language | |||
| lucian | allison: i'd dispute that | ||
| allison: but hijacking v8 is probably a bad idea | |||
| allison | lucian: it's not just a predjudice on my part, I've been a JS developer almost from the start of the language | ||
| lucian | i see a few platforms to target: llvm, nanojit, lightning, x86, ARM | ||
| whiteknight | lucian: So pick one to start with | 14:53 | |
| allison | lucian: languages have domains where they're well suited, and domains where they're poorly suited | ||
| whiteknight | we're not going to write a 5-way JIT subsystem to start out with | ||
| lucian | allison: it's still much better than many languages people use nowadays | ||
| atrodo | allison> if you had asked me a year or two ago, i would have agreed. and then this: imrannazar.com/GameBoy-Emulation-in-JavaScript | ||
| lucian | whiteknight: of course not. two-way at most for prototyping, i would guess | ||
| allison | lucian: I take it a bit like Java. The VM is state-of-the art, with amazing features that are still poorly exposed in the Java syntax | ||
| whiteknight | lucian: okay, so pick two | ||
| lucian | whiteknight: x86 and ARM, or llvm and nanojit | 14:54 | |
| allison | atrodo: sure, it's turing complete, and you can implement anything in a turing complete language | ||
| cotto | lucian, are you suggesting cpu-specific code, and who'd maintain it? | ||
| allison | atrodo: you can implement anything in assembly language | ||
| whiteknight | lucian: when you say x86 and arm, what do you mean? Writing our own JIT for those? | ||
| lucian | cotto: whoever'd maintain the llvm backend | ||
| whiteknight: yep | |||
| cotto | lucian, ok | ||
| lucian | there are only two relevant CPUs: x86 and ARM | 14:55 | |
| allison | atrodo: that doesn't mean it's well adapted for ease of use, maintainability, or high-quality code for that domain | ||
| lucian | it's likely about as much effort as dealing with llvm, on the whole | ||
| allison | drat, meeting, and this is an interesting conversation :) | ||
| later all | |||
| cotto | actually, the important thing is to get M0 defined. if you want to go nuts and write a pure x86_64 jitting interpreter, that's fine. ;) | ||
| lucian waves | |||
| atrodo | allison> I agree. But it makes it possible in my mind. Maybe not ideal or anything, but reasonably possible | ||
| cotto | allison, thanks for dropping by | ||
| lucian | cotto: of course. as long as M0 is not lower level than x86 or ARM | 14:56 | |
| cotto | lucian, that'd be difficult | ||
| lucian | cotto: how so? | ||
| cotto | x86 is pretty low-level | 14:57 | |
| lucian | if it's lower level that the platforms it targets, how will it ever be efficient? | ||
| cotto: nvm, misread | |||
| so if M0 has everything that x86 and ARM have in common, and is not lower level than either one, it's fine | |||
| cotto gets deconfused | |||
| whiteknight | broad-spectrum optimizations are going to be happening at higher levels. HLL compilers will optimize, and PCT will optimize. Once we get down to the PIR/M0 level, what's left are peephole optimizations | ||
| lucian | may want to add LLVM IR and nanojit IR there | ||
| whiteknight: exactly | 14:58 | ||
| whiteknight: also, there will have to be a parrot-specific JIT bit | |||
| whiteknight | we don't need a JIT to be doing huge, broad optimizations. We need a JIT that does basic peephole optimizations and can emit basic platform-specific machine code | ||
| cotto | yes | ||
| atrodo | cotto> This is where I think composed ops could help. You'd end up with a JITable code, but if a platform understands a particular composed op, it can optimize it further | ||
| whiteknight | so if LLVM's optimizations are unsuitable for dynamic languages, that doesn't impact parrot at all | ||
| we wouldn't use them anyway | |||
| atrodo | platform = platform or jit engine | ||
| whiteknight | So, ignoring all that crap, we need a JIT backend library that can generate machine code for our target platforms | 14:59 | |
| We can do tracing and type-specializations in Parrot | |||
| lucian | atrodo: that sounds useful | ||
| atrodo: but i don't think it's too relevant. x86, ARM and LLVM IR are *very* similar | 15:00 | ||
| whiteknight | broad optimizations at the HLL and PCT levels, type-specialization and tracing at the parrot level to generate an M0 stream, and a JIt backend to do M0->machine code | ||
| lucian | rather, the sane subset of x86 that everyone uses | ||
| whiteknight | If M0 ops are fixed-width, tracing can actually become extremely easy | 15:01 | |
| lucian | whiteknight: my point about llvm is that it's only marginally better than generating C, compiling and linking at runtime | ||
| cotto | and generated C can be pretty heavily optimized | ||
| whiteknight | lucian: So what? For a first JIT system it doesn't need to be fantastic | ||
| Put together the prototype, build a suitable abstract interface around it, replace the backend with something better | |||
| lucian | whiteknight: sure. but you end up having to deal with llvm, which is huge and buggy | ||
| whiteknight | lucian; and under active development | 15:02 | |
| that's a bit not to be underestimated | |||
| lucian | it's been like that for years | ||
| it has only had small improvements for JITs | |||
| whiteknight | lucian: that doesn't bother me | ||
| lucian | that may of course change | ||
| whiteknight | Parrot's object model hasn't had any love for years, but that doesn't mean I'm going to bet against it getting love in the future | 15:03 | |
| lucian | another option could be using an existing vm framework | ||
| whiteknight: right, but parrot's object model is microscopic by comparison | |||
| cotto | whiteknight, you'd be wise not to do so ;) | ||
| lucian | you may be underestimating just hog mind-bogglingly huge and buggy llvm is | ||
| s/hog/how/ | 15:04 | ||
| whiteknight | lucian: and you may be overestimating | ||
| atrodo | s/llvm/parrot ;) | ||
| cotto | lucian, do you have some blog posts by hackers with scars? | ||
| whiteknight | If the Rubinus people are using it, it can't be all bad | ||
| cotto | atrodo, enough out of you ;) | ||
| whiteknight | The plight of the unladen swallow people is an interesting story, but hardly the law of the land | ||
| lucian | cotto: morepypy.blogspot.com, older posts. also rubinius and unladen swallow | ||
| whiteknight: sure, it's doable. just very, very hard. also, rubinius folks like C++ | 15:05 | ||
| atrodo | cotto> Sorry, couldn't resist. | 15:06 | |
| whiteknight | What I need is to get email addresses for some of these pypy people and start communicating with them | 15:07 | |
| cotto | +1 | ||
| lucian | whiteknight: join freenode#pypy | ||
| if all of parrot is to be rewritten in M0, it could even be done with PyPy itself | |||
| write the VM in RPython, the rest in M0 | |||
| get GC and JIT for free | 15:08 | ||
| but that's likely to be unpopular | |||
| cotto | it'd be a hard sell | ||
| lucian | when i have time, i'll try writing a M0 interpreter with PyPy | ||
| cotto | but we'd have to have a mostly-M0 parrot first anyway | ||
| lucian | sure | ||
| cotto | lucian, I'd recommend waiting for a bit. I suspect some big changes will be coming down the pipeline | 15:09 | |
| but I'd like to see it | |||
| lucian | not like i have time for it now, anyway :) | 15:10 | |
| whiteknight | If we run on top of another VM, Parrot is no longer a VM in itself. It becomes little more than a runtime library | 15:11 | |
| lucian | whiteknight: no, PyPy is a framework for generating VMs | ||
| you write an interpreter in RPython, and it spits out a VM with a JIT for you | |||
| there's an unfortunate naming clash with pypy, the python interpreter written in RPython | |||
| py.py, rather | 15:12 | ||
| so the fast python vms PyPy has (pypy-c-jit) are generated by translating py.py with the PyPy translation framework to C | |||
| and during translation, interesting aspects are added (GC, JIT) | 15:13 | ||
| whiteknight | ok | ||
| lucian | in fact, if that perl M0 interpreter had been written in Python instead, we'd almost have it | 15:14 | |
| cotto | and we'd have ctypes | 15:15 | |
| which would be quite nice | |||
| lucian | cotto: there's _rawffi (or _ffi) which is just a libffi binding | ||
| ctypes on PyPy is purely app-level, on top of _rawffi | |||
| JimmyZ | Parrot on pypy :) | 15:16 | |
| lucian | anyway, all this requires parrot being M0 | ||
| which i think is a good idea, but isn't the case at all now | |||
| JimmyZ | and then Perl 6 on pypy ? | ||
| cotto | yeah. It's good to give it some thought, but not in too much detail. | ||
| lucian | JimmyZ: sure, why not. it'd be easier to just write a perl6 interpreter directly, in fact | ||
| JimmyZ: it's another cultural thing. rubinius folks would've been much better off using PyPy, but they didn't because it's Python | 15:17 | ||
| JimmyZ | language is not problem | 15:18 | |
| s/not/not a/ | |||
| lucian | in some cases, it is | 15:19 | |
| JimmyZ | I think missing coder is a real problem | ||
| it's make me remember what linus said from a email, the creator of linux "talking is cheaper, show me the code" ;) | 15:22 | ||
| cotto | time for noms | 15:23 | |
| JimmyZ doesn't what noms means, nom branch of rakudo? | 15:24 | ||
| doesn't know | |||
| dafrito | JimmyZ, noms is likely eating ;) | ||
| lucian | JimmyZ: nom-nom-nom. muching | ||
| s/munching/ | |||
| JimmyZ | oh, whenever pmichaud++ said noms, I always thought nom branch of rakudo, which is exciting | 15:26 | |
| hehe | |||
| cotto | #ps is during dinner. I'll try to make it. | 15:27 | |
| can't say for certain I'll be there though | 15:28 | ||
|
15:34
Tene joined
|
|||
| whiteknight | win32 build is definitely broken, and I'm not able to look at it now | 15:36 | |
|
15:37
darbelo joined
|
|||
| whiteknight | wait, it looks like it's going this time | 15:39 | |
| weird, must be a makefile issue | 15:40 | ||
|
15:42
dmalcolm joined
|
|||
| JimmyZ built parrot successfully with strawberry perl | 15:47 | ||
| whiteknight | win32 build, all tests pass | ||
| lucian | whiteknight++ | ||
| whiteknight | smolder.parrot.org/app/projects/rep...ails/21141 | 15:48 | |
|
15:54
mj41 joined
16:36
theory joined
|
|||
| dalek | kudo/nom: 15ef06f | moritz++ | src/ (2 files): implement numification of strings like :16<BEEF>, and :16("BEEF") style conversions This is only a first rough cut, and does not support a lot of features |
16:45 | |
|
17:05
jsut_ joined
17:12
jay joined
|
|||
| whiteknight | mmmm. beef | 17:15 | |
| herbsutter.com/2011/08/12/we-have-a...-approved/ | 17:51 | ||
| benabik | C++0xB! | 17:52 | |
| lucian | huh. they still haven't taken things out, have they? | ||
| whiteknight | take things....out? | 17:53 | |
| that sentence doesn't parse, in the context of C++ | |||
| lucian | even with 7 parsing passes! bam | ||
| thank you, i'll be here all night | |||
| benabik | 0xB is a significantly improved language. Lambas, auto typing, improved libraries… Now we just have to wait several years for everyone to support it. *sigh* | 17:54 | |
| lucian | benabik: right. but it's still the most gigantic and inconsistent language on earth | 17:55 | |
| and the new standard is even more gigantic | |||
| whiteknight | is it bigger than perl6? | 17:57 | |
| lucian | whiteknight: don't know perl6 in detail, but i'd guess it is | ||
| benabik | I personally find it an extremely useful language, that adds a lot of power without adding a ton of overhead. But I also realize I'm in a significant minority. | ||
| whiteknight | benabik: where you lose people is in the "without adding a ton of overhead" | 17:58 | |
|
17:58
contingencyplan joined
|
|||
| whiteknight | maybe it doesn't have a lot of runtime overhead | 17:58 | |
| lucian | benabik: i like those particular properties. i just think it's an overly complex language | ||
| benabik | whiteknight: That's what I mean. It does have an unfortunate tendency to explode in size… But when I'm trying to explore large keyspaces I need runtime performance. | 17:59 | |
| lucian: I find it fairly clear. People regularly use horrible styles of programming with it, which I find unfortunate. But I find the base language clear. | 18:00 | ||
| lucian | benabik: that surprises me a lot. i find it extremely ambiguous and odd | ||
| there's a reason it's so hard to parse | 18:01 | ||
| whiteknight is upgrading to FireFox 6.0 | 18:03 | ||
| prepare for cursewords! | |||
| benabik | I should probably try FF again at some point. But it has this horrible tendency to absorb all my memory. | ||
| jay | benabik: I'm hooked on FF. Doing big data scrapes right now to prepare for the draft in two weeks. | 18:11 | |
| benabik | jay: And firefox makes that easy how? | 18:12 | |
| jay | lol Sorry. Fantasy Football... you can tell my mind is elsewhere. Actually have severe jetlag, too. Oh well. | 18:13 | |
| benabik | jay: Ah. Fair enough. Fantasy Football seems to absorb all your memory, just like Firefox aborbs all my computer's. ;-) | ||
| jay | benabik: exactly. My FF frustrations include different plugin behavior on different Ubuntu installations... clearly my fault, but hard to pin down. Sometimes video works, other times not. | 18:15 | |
|
18:25
whiteknight joined
18:32
Coke joined
|
|||
| Coke | ~~ ## home machine was apparently rebooted. | 18:32 | |
| whiteknight | hello Coke | 18:36 | |
|
18:50
alester joined
19:14
soh_cah_toa joined
19:25
cotto joined
19:36
kid51 joined
|
|||
| kid51 | Coke: On OSX, does 'man openssl' have anything you can use re sha256? | 19:37 | |
|
19:37
daniel-s joined
|
|||
| tcurtis | ~~ | 19:38 | |
| whiteknight | hello tcurtis | 19:39 | |
| tcurtis | hello, whiteknight. | 19:41 | |
| cotto | whiteknight, #ps? | ||
| benabik | Arg! I must have gotten more used to the old #ps time than I thought. | 19:42 | |
| cotto | no complaining. I'm halfway across the world. ;) | ||
| benabik | cotto: It's more just irritation at myself for forgetting to show up on time than irritation about the time. | 19:43 | |
| whiteknight | that time already? | 19:44 | |
| cotto | 'fraid so | ||
|
19:52
particle1 joined
20:11
rdesfo joined
|
|||
| cotto | soh_cah_toa, did you see that module I msg'd you? Someone did a talk on it at yapc and I thought of your HBDB test code | 20:12 | |
| soh_cah_toa | let's see... | ||
| there it is | |||
| cotto | I just sent a link because I didn't want my attention to diverge from the talk too much. | 20:13 | |
| soh_cah_toa | this looks interesting | ||
| cotto: wow, i'm glad you saw this | 20:14 | ||
| i'm downloading the source now. see what i can borrow | |||
| cotto | if it's useful enough as-is, we can bundle it | 20:15 | |
| soh_cah_toa | ok | ||
| whiteknight | what is it? | 20:23 | |
| cotto | whiteknight, it encapsulates running a process and dealing with stdin/stdout/stderr and exit codes | 20:24 | |
| benabik | kid51++ # doing legwork | 20:27 | |
| soh_cah_toa | kid51++ indeed | ||
| Coke | kid51: I've no tuits to figure out at the moment what the drop in replacement for that linux command is, so Iunno. | 20:32 | |
|
20:38
bluescreen_ joined
21:11
perlite_ joined,
plobsing joined
21:45
Psyche^ joined
|
|||
| Coke sits down to try the release again. | 22:16 | ||
| sorear | eep. what happened? | 22:17 | |
|
22:17
mj41 joined
|
|||
| Coke | linux-specific code in the release path. | 22:17 | |
|
22:17
rdesfo joined
|
|||
| Coke | my main box is OS X. re-doing on feather. | 22:17 | |
| sorear | ... | 22:18 | |
| dalek | rrot-gmp: 42941e4 | bubaflub++ | LICENSE: Add artistic license 2.0 |
22:19 | |
| rrot-gmp: 08879a3 | bubaflub++ | / (4 files): update some docs |
|||
| sorear | I'd say "seriously?" but I think I know the answer. | ||
| Coke | eh. there's a very small # of people that have to do the release. | 22:20 | |
| and the problem is very fixable. | |||
| (it's just the use of sha256sum, SFAIK) | |||
| wtf. feather and git don't seem to be talking to each other. | |||
| *github | 22:21 | ||
| anyone else able to git clone/pull/fetch on feather to a github origin? | 22:23 | ||
| sorear | yes | 22:24 | |
|
22:24
darbelo joined
|
|||
| lucian has written a long blog post honeyweb.wordpress.com | 22:25 | ||
| phew | |||
| sorear | Coke: correction: I can pull from gist.github.com but not github.com, from featuer | ||
| feather | |||
|
22:29
ReachingFarr joined
|
|||
| dalek | website: lucian++ | The End. | 22:29 | |
| website: www.parrot.org/content/end. | |||
| Coke | ARGH. | 22:30 | |
| so now I have to fall back to plan C, which is making "make release" work on OS X. | |||
| lucian | dalek: no, bad dalek. this is the link honeyweb.wordpress.com | ||
| sorear | Coke: *I can pull from the github main site* | 22:32 | |
| Coke remembers he's got a linux laptop around here somewhere, and goes off to find it. | |||
| sorear: yes, but I cannot. | |||
| sorear | have you tried in the last minute or two? | ||
| I was having a problem too but it started working again for me | 22:33 | ||
| Coke | nope. it's just hanging. if I run it with -v, looks like it's talking to the server, even. | 22:35 | |
| ReachingFarr | Is it possible to execute parallel code inside the Parrot VM? | 22:38 | |
| lucian | Coke: github wfm | ||
|
23:11
kid51 joined
23:23
theory joined
|
|||
| dukeleto | Coke: sha256 = shasum -a 256 . do you have shasum on os x? | 23:24 | |
| kid51 | $ perl -e "print qq(abc)" | shasum -a 256 | 23:25 | |
| ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad - | |||
| On Mac OS X 10.4.11 | |||
| Will that work for us? | |||
| dukeleto | yes | 23:28 | |
| lucian++ # blogging | |||
| kid51 | On Mac OS X: | 23:32 | |
| $ shasum -a 256 Parse-File-Metadata-0.07.tar.gz | |||
| 831240e0ca832283ec18016517fcbf5c8e67751c1b8213686815c5825dad8e57 Parse-File-Metadata-0.07.tar.gz | |||
| On Linux (Debian): | |||
| sha256sum Parse-File-Metadata-0.07.tar.gz | 23:33 | ||
| 831240e0ca832283ec18016517fcbf5c8e67751c1b8213686815c5825dad8e57 Parse-File-Metadata-0.07.tar.gz | |||
| works4me | |||
| Coke | dukeleto: awesome. someone should totally probe for which one of those is the right one. For now, I'm just doing the release on linux. | 23:42 | |
| I will attempt to provide a patch for that post release. | 23:48 | ||